Surveiller / regarder le processus rsync en cours d'exécution

22

J'ai un travail rsync qui a été ajouté à un crontab et quand il est en cours d'exécution, je peux seulement vérifier qu'il y a un PID rsync et confirmer avec htop qu'il consomme n quantité de CPU et de RAM.

Ce que j'aimerais faire, c'est surveiller quels fichiers sont réellement synchronisés en temps réel ... quand je le veux. Pour info, je n'ai transmis aucune option détaillée à la commande et je n'ai pas ajouté de journalisation. Je veux vraiment vérifier ce qui est synchronisé à la demande.

Une idée comment je pourrais y arriver?

vanz
la source

Réponses:

38

Tu peux faire:

strace -e open $(ps -o lwp= -LC rsync | sed 's/^/-p/')

Pour voir ce qu'il fait, ou

lsof -ad3-999 -c rsync

pour voir quels fichiers il a actuellement ouverts.

Stéphane Chazelas
la source
3

La solution la plus simple serait de rediriger la sortie de rsync vers un fichier journal.

rsync -avz /something /somwhere >> ~/rsynclog
Király István
la source
1

Voici deux façons

Avec écran: associez une session d'écran à votre tâche cron:

écran rsync --progress src dst

cela vous permettra de vous rattacher au travail rsync à tout moment si vous voulez vérifier quels fichiers son traitement en cours (assurez-vous simplement d'être le même utilisateur que celui qui a lancé le travail rsync) avec

screen -x

Avec la journalisation, ajoutez la journalisation à votre travail rsync:

rsync --log-file=/tmp/rsync-status.txt  src dst

puis suivez le log en temps réel avec:

 tail -f /tmp/rsync-status.txt
tomodachi
la source
0

Si vous connaissez le répertoire approximatif que vous allez synchroniser (c'est-à-dire que nous utiliserons le répertoire 'films' par exemple), vous pouvez également utiliser une combinaison de lsof et grep:

lsof | grep rsync | films grep

lsof listera vos fichiers ouverts, redirigera la sortie vers grep pour trouver les fichiers ouverts par rsync, redirigera vers grep pour trouver le répertoire / fichier qui est ouvert.

Bill Rookard
la source
0

Comme l'a suggéré Király István , je cours

rsync -ravz /Users/jkirby/Music/iTunes/* .

ce qui donne une sortie comme

Jeffs-MBP-2:2016-08-15 jkirby$ rsync -ravz /Users/jkirby/Music/iTunes/* .
building file list ... done
Temp File 1.tmp
Temp File.tmp

De cette sortie, je peux voir quel répertoire est copié.

Dans le cas où rsynccopie beaucoup de gros fichiers lentement, je surveille ce répertoire en utilisant watchcomme ça. De cette façon, je peux voir le fichier temporaire qui rsynccrée et je peux voir la taille augmenter sur le fichier en cours de copie.

watch -n1 "~/Music/iTunes"

Kirby
la source