Monitorar / assistir processo rsync em execução

22

Eu tenho um trabalho rsync que foi adicionado a um crontab e, quando está em execução, só posso verificar se há um PID rsync e confirmar com o htop que ele está consumindo n quantidade de CPU e RAM.

O que eu gostaria de fazer é monitorar quais arquivos estão realmente sendo sincronizados em tempo real ... quando eu quiser. Para sua informação, não passei nenhuma opção detalhada para o comando nem adicionei algum log. Eu realmente só quero verificar o que está sendo sincronizado sob demanda.

Alguma idéia de como eu poderia conseguir isso?

vanz
fonte

Respostas:

38

Você pode fazer:

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

Para ver o que está fazendo, ou

lsof -ad3-999 -c rsync

para ver quais arquivos foram abertos no momento.

Stéphane Chazelas
fonte
3

A solução mais simples seria redirecionar a saída do rsync para um arquivo de log.

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

Aqui estão duas maneiras

Com tela: Anexe a sessão de tela ao seu trabalho cron:

screen rsync --progress src dst

isso permitirá que você se reconecte ao rsync jobb sempre que quiser verificar quais arquivos estão sendo processados ​​no momento (apenas certifique-se de ser o mesmo usuário que iniciou o trabalho rsync) com

screen -x

Com o registro, adicione o registro ao seu trabalho rsync:

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

siga o log em tempo real com:

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

Outra maneira que você pode fazer é conhecer o diretório aproximado que estará sincronizando (por exemplo, usaremos o diretório 'movies' por exemplo), você pode usar uma combinação de lsof e grep:

lsof | grep rsync | filmes grep

O lsof listará seus arquivos abertos, canalizará a saída para o grep para encontrar qualquer arquivo aberto pelo rsync, canalizará a saída para o grep para encontrar o diretório / arquivo que está aberto.

Bill Rookard
fonte
0

Como Király István sugeriu, estou correndo

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

o que dá saída como

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

A partir dessa saída, posso ver qual diretório está sendo copiado.

No caso de rsynccopiar muitos arquivos grandes lentamente, monitorei esse diretório usando watchassim. Dessa forma, posso ver o arquivo temporário rsynccriado e o tamanho crescente do arquivo atualmente sendo copiado.

watch -n1 "~/Music/iTunes"

Kirby
fonte