Ü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?

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.


3

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

rsync -avz /something /somwhere >> ~/rsynclog

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

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.


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"

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.