Monitoruj / obserwuj uruchomiony proces rsync

22

Mam zadanie rsync, które zostało dodane do pliku crontab, a gdy jest uruchomione, mogę tylko sprawdzić, czy istnieje identyfikator PID rsync i potwierdzić przez htop, że zużywa on n procesora i pamięci RAM.

Chciałbym monitorować, które pliki są synchronizowane w czasie rzeczywistym ... kiedy chcę. Do Twojej wiadomości nie przekazałem żadnej szczegółowej opcji do polecenia ani nie dodałem rejestrowania. Naprawdę chcę tylko sprawdzić, co jest synchronizowane na żądanie.

Masz pomysł, jak to osiągnąć?

vanz
źródło

Odpowiedzi:

38

Możesz to zrobić:

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

Aby zobaczyć, co robi, lub

lsof -ad3-999 -c rsync

aby zobaczyć, jakie pliki aktualnie otworzył.

Stéphane Chazelas
źródło
3

Najprostszym rozwiązaniem byłoby przekierowanie wyjścia rsync do pliku dziennika.

rsync -avz /something /somwhere >> ~/rsynclog
Király István
źródło
1

Oto dwa sposoby

Z ekranem: dołącz sesję ekranu do zadania crona:

screen rsync --progress src dst

pozwoli to na ponowne dołączenie do zadania rsync w dowolnym momencie, aby sprawdzić, jakie pliki są obecnie przetwarzane (pamiętaj tylko, aby być tym samym użytkownikiem, który uruchomił zadanie rsync) z

screen -x

Po zalogowaniu dodaj rejestrowanie do zadania rsync:

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

następnie śledź dziennik w czasie rzeczywistym za pomocą:

 tail -f /tmp/rsync-status.txt
tomodachi
źródło
0

Innym sposobem, w jaki możesz to zrobić, jest to, że jeśli znasz szorstki katalog, który chcesz synchronizować (np. Użyjemy katalogu „filmy”), możesz użyć kombinacji lsof i grep:

lsof | grep rsync | filmy grep

lsof wyświetli listę twoich otwartych plików, potokuje wyjście do grep, aby znaleźć wszystkie otwarte przez rsync, potoki, które wyprowadzają do grep, aby znaleźć otwarty katalog / plik.

Bill Rookard
źródło
0

Jak sugerował Király István , biegnę

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

co daje wynik jak

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

Z tego wyjścia widzę, który katalog jest kopiowany.

W przypadku rsyncpowolnego kopiowania wielu dużych plików monitoruję ten katalog w ten watchsposób. W ten sposób widzę plik tymczasowy, który rsynctworzy i widzę, jak rośnie rozmiar aktualnie kopiowanego pliku.

watch -n1 "~/Music/iTunes"

Kirby
źródło