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.
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.
Exécutez rsync
avec le --partial
drapeau. Il conservera ensuite les transferts partiels et reprendra les fichiers partiels une fois démarré.
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)