Überwachen / Überwachen des laufenden rsync-Prozesses

22

Ich habe einen Rsync-Job, der zu einer Crontab hinzugefügt wurde, und wenn er ausgeführt wird, kann ich nur überprüfen, ob eine Rsync-PID vorhanden ist, und mit htop bestätigen, dass er n Menge an CPU und RAM aufnimmt.

Was ich tun möchte, ist zu überwachen, welche Dateien tatsächlich in Echtzeit synchronisiert werden ... wenn ich möchte. Zu Ihrer Information Ich habe dem Befehl keine ausführliche Option übergeben und auch keine Protokollierung hinzugefügt. Ich möchte wirklich nur prüfen, was bei Bedarf synchronisiert wird.

Irgendeine Idee, wie ich das erreichen könnte?

vanz
quelle

Antworten:

38

Du kannst tun:

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

Um zu sehen, was es tut, oder

lsof -ad3-999 -c rsync

um zu sehen, welche Dateien es aktuell geöffnet hat.

Stéphane Chazelas
quelle
3

Die einfachste Lösung wäre, die Ausgabe von rsync in eine Protokolldatei umzuleiten.

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

Hier sind zwei Möglichkeiten

Mit Bildschirm: Hängen Sie eine Bildschirmsitzung an Ihren Cron-Job an:

screen rsync --progress src dst

Auf diese Weise können Sie jederzeit eine neue Verbindung zum rsync-Job herstellen, um zu überprüfen, welche Dateien gerade verarbeitet werden (achten Sie nur darauf, dass Sie denselben Benutzer verwenden wie derjenige, mit dem der rsync-Job gestartet wurde)

screen -x

Fügen Sie mit der Protokollierung die Protokollierung zu Ihrem rsync-Job hinzu:

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

Dann folgen Sie dem Log in Echtzeit mit:

 tail -f /tmp/rsync-status.txt
Tomodachi
quelle
0

Eine andere Möglichkeit ist, wenn Sie das ungefähre Verzeichnis kennen, das Sie synchronisieren möchten (dh wir verwenden beispielsweise das Verzeichnis 'movies'), eine Kombination aus lsof und grep zu verwenden:

lsof | grep rsync | Grep-Filme

lsof listet Ihre geöffneten Dateien auf, leitet die Ausgabe an grep weiter, um alle von rsync geöffneten zu finden, und leitet die Ausgabe an grep weiter, um das Verzeichnis / die Datei zu finden, die geöffnet ist.

Bill Rookard
quelle
0

Wie Király István vorgeschlagen hat, renne ich

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

was gibt Ausgabe wie

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

Aus dieser Ausgabe kann ich sehen, welches Verzeichnis kopiert wird.

Für den Fall, dass rsyncviele große Dateien langsam kopiert werden, überwache ich dieses Verzeichnis mithilfe von watchlike so. Auf diese Weise kann ich die temporäre Datei sehen, die rsyncerstellt wird, und ich kann sehen, wie die Größe der Datei, die gerade kopiert wird, zunimmt.

watch -n1 "~/Music/iTunes"

Kirby
quelle