web-dev-qa-db-fra.com

Comment puis-je suspendre / reprendre rsync

Comment puis-je suspendre une rsync en cours d'exécution?

La première fois que je l'ai fait Ctrl+C pour le tuer et utilisé le -P drapeau à exécuter à nouveau. Est-ce susceptible de corrompre le transfert de fichiers actuel?

La deuxième fois, j'ai simplement mis MacOS en veille (en fermant le couvercle). En regardant le processus en cours, je peux voir 2 (je ne sais pas pourquoi) avec un statut de "S".

Essayé en utilisant

kill -SIGCONT

pour reprendre le processus, mais cela n'a aucun effet.

52
qnoid

Vous pouvez suspendre n'importe quel programme en lui envoyant un signal TSTP (poli) ou STOP (forcé). Sur le terminal sur lequel vous avez exécuté rsync, en appuyant sur Ctrl+Z envoie TSTP. Reprenez avec la commande fg ou bg dans le terminal ou un signal CONT.

Il est sûr de tuer un processus rsync et d'exécuter à nouveau le tout; il continuera là où il s'était arrêté. Cela peut être un peu inefficace, surtout si vous n'avez pas réussi --partial (inclus dans -P), car rsync vérifiera à nouveau tous les fichiers et traitera le fichier sur lequel il a été interrompu à partir de zéro.

Il peut y avoir des combinaisons inhabituelles d'options qui entraîneront la synchronisation incorrecte de certains fichiers, peut-être --inplace avec autre chose, mais je pense qu'aucune option ne provoquera cela.

Si vous déconnectez votre ordinateur portable et le reconnectez ailleurs, il peut obtenir une adresse IP différente. Ensuite, la connexion TCP utilisée par rsync serait rompue, vous devrez donc la tuer et recommencer. Cela peut également se produire si vous suspendez votre ordinateur portable et le TCP la connexion expire. Le délai d'attente finira par filtrer au niveau de l'application, mais cela peut prendre un certain temps. Ctrl+C et réexécutez rsync.

Ctrl+Z suspendre, et:

$ fg

pour continuer, utilisez

$ jobs

pour voir les emplois suspendus; bg [number] pour les mettre en arrière-plan; fg [number] pour le mettre en avant-plan.

22
gauteh

Exécutez rsync avec le --partial drapeau. Il conservera ensuite les transferts partiels et reprendra les fichiers partiels une fois démarré.

8
bahamat

Les gens ici ont mentionné l'utilisation du --partial flag fonctionne, il faut cependant mentionner qu'il ne reprend que lorsque --append ou --append-verify L'indicateur est utilisé lors de la reprise.

--partial crée un fichier caché du fichier qui n'a pas terminé le processus de synchronisation, le fichier est conservé lorsque vous interrompez la synchronisation. Il continue de terminer le fichier lorsque vous utilisez --append après la reprise, sinon lorsque vous n'utilisez pas --append, le fichier caché incomplet est conservé et reste incomplet.

Conclusion: Vous pouvez simplement interrompre rsync --partial en utilisant Ctrl + C si tu utilises rsync --append lors de la reprise

(Source: rsync peut-il reprendre après avoir été interrompu? récupéré le 5 avril 2016)

5
Mehdi Nellen