#1 Le 10/10/2009, à 16:04
- thenn42
Mettre en pause une commande lancée au lancement de screen
Bonjour ,
Je veux lancer une synchronisation avec rsync en utilisant crontab.
Je voudrais pouvoir mettre la synchronisation en pause quand elle dure trop longtemps.
J'ai alors pensé à utiliser screen:
16 15 * * * screen -d -m -S backup rsync -v --progress /home/thenn42/doc /home/thenn42/backup
Mais la commande ne semble pas être lancée dans un terminal et control + Z ne marche pas (et donc ne met pas en pause).
J’ai essayé de faire comme ça mais ça ne marche pas non plus:
16 15 * * * screen -d -m -S backup bash -i -c "rsync -v --progress /home/thenn42/doc /home/thenn42/backup"
Donc comment faire pour lancer une commande avec screen et pouvoir la mettre en pause plus tard?
Merci d'avance .
Dernière modification par thenn42 (Le 10/10/2009, à 16:07)
Hors ligne
#2 Le 10/10/2009, à 16:06
- kyncani
Re : Mettre en pause une commande lancée au lancement de screen
kill -STOP `pidof rsync`
kill -CONT `pidof rsync`
EDIT:
Sinon, pour exécuter rsync avec une priorité minimale.
Installe schedtool
Lance rsync avec : ionice -c3 schedtool -D -e /usr/bin/rsync
Dernière modification par kyncani (Le 10/10/2009, à 16:08)
Hors ligne
#3 Le 10/10/2009, à 16:08
- thenn42
Re : Mettre en pause une commande lancée au lancement de screen
merci mais si j'ai plusieurs synchronisation en même temps(ce qui est le cas en fait), comment je sais quel rsync est le bon?
edit:
une priorité minimale par rapport à quoi?
Dernière modification par thenn42 (Le 10/10/2009, à 16:10)
Hors ligne
#4 Le 10/10/2009, à 16:11
- wido
Re : Mettre en pause une commande lancée au lancement de screen
Bonjour,
dans le manuel tu as ça:
DEFAULT KEY BINDINGS
As mentioned, each screen command consists of a "C-a" followed by one
other character. For your convenience, all commands that are bound to
lower-case letters are also bound to their control character counter‐
parts (with the exception of "C-a a"; see below), thus, "C-a c" as well
as "C-a C-c" can be used to create a window. See section "CUSTOMIZA‐
TION" for a description of the command.
The following table shows the default key bindings:
[...]
C-a C-z (suspend) Suspend screen. Your system must support
BSD-style job-control.
voir
man screen
Hors ligne
#5 Le 10/10/2009, à 16:18
- kyncani
Re : Mettre en pause une commande lancée au lancement de screen
Pour savoir lequel est le bon, oublie. Si tu ne peux pas repérer à la main quel rsync stopper, il faut stocker le pid du rsync dans un fichier et donc savoir scripter.
Pour les priorités, c'est l'ordonnanceur qui gère ça. Il y a des articles un peu partout (cherche scheduler). Lis-les si tu n'as pas confiance en la commande que je t'ai donné (et on devrait toujours se renseigner, vérifier plutôt que d'accorder une confiance aveugle).
Hors ligne
#6 Le 10/10/2009, à 16:21
- thenn42
Re : Mettre en pause une commande lancée au lancement de screen
Pour les priorités j'ai fais une recherche rapide je vois ce que c'est.
En fait mes synchronisations sont en réseaux c'est pour ça que j'ai besoin de couper pour libérer l'upload de mon serveur.
Pour Control a + control z , ça met en pause screen mais rsync continue la synchronisation.
Edit:
Bon merci, je vais me débrouiller avec :
kill -STOP `pidof rsync`
kill -CONT `pidof rsync`
Si quelqu'un sait comment faire pour utiliser control +z dans ce cas , ça me ferais gagner du temps.
Merci pour l'aide!
Dernière modification par thenn42 (Le 11/10/2009, à 23:16)
Hors ligne