web-dev-qa-db-fra.com

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

Un travail rsync a été ajouté à une crontab et, lorsqu’elle est en cours d’exécution, je ne peux que vérifier qu’il existe un PID rsync et confirmer avec htop qu’elle consomme une quantité importante de CPU et de RAM.

Ce que j'aimerais faire, c'est surveiller quels fichiers sont en train d'être synchronisés en temps réel ... quand je le veux. Pour info, je n’ai passé aucune option détaillée à la commande ni ajouté de journalisation. Je veux juste juste vérifier ce qui est en train d'être synchronisé sur demande.

Une idée de comment je pourrais y arriver?

20
vanz

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 ouvert.

35
Stéphane Chazelas

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

rsync -avz /something /somwhere >> ~/rsynclog
3
Király István

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

lsof | grep rsync | films grep

lsof va lister vos fichiers ouverts, dirige la sortie vers grep pour trouver ceux ouverts par rsync, les pipes qui sortent vers grep pour trouver le répertoire/fichier ouvert.

0
Bill Rookard

Voici deux façons

With screen: Attachez une session screen à votre tâche cron:

écran rsync --progress src dst

cela vous permettra de vous connecter à la tâche rsync à tout moment si vous souhaitez vérifier les fichiers qu’elle traite actuellement (assurez-vous d’être le même utilisateur que celui qui a lancé la tâche rsync) avec

screen -x

avec journalisation ajouter la journalisation à votre travail rsync:

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

puis suivez le journal en temps réel avec:

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

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

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

qui donne comme sortie

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

À partir de cette sortie, je peux voir quel répertoire est copié.

Dans le cas où rsync copie lentement de nombreux fichiers volumineux, je surveille ce répertoire à l’aide de watch. De cette façon, je peux voir le fichier temporaire créé par rsync et la taille de celui-ci augmenter sur le fichier en cours de copie.

watch -n1 "~/Music/iTunes"

0
Kirby