监视/监视正在运行的rsync进程


22

我有一个rsync作业已添加到crontab中,当它运行时,我只能检查是否有rsync PID并用htop确认它消耗了n的CPU和RAM。

我想做的是,在需要时,实时监视实际上正在同步哪些文件。仅供参考,我没有向命令传递任何详细选项,也没有添加任何日志记录。我真的只想检查正在按需同步的内容。

知道如何实现吗?

Answers:


38

你可以做:

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

看看它在做什么,或者

lsof -ad3-999 -c rsync

查看其当前已打开的文件。



1

这有两种方法

带屏幕: 将屏幕会话附加到您的cron作业:

屏幕rsync --progress src dst

这将使您可以在任何时候要检查其当前正在处理的文件(只要确保与启动rsync作业的用户相同),就可以重新连接到rsync jobb。

screen -x

使用日志记录 将日志记录添加到您的rsync作业中:

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

然后通过以下方式实时跟踪日志:

 tail -f /tmp/rsync-status.txt

0

另一种可能的方式是,如果您知道将要同步的粗略目录(例如,我们将使用目录“ movies”),则可以结合使用lsof和grep:

lsof | grep rsync | grep电影

lsof将列出您打开的文件,将输出通过管道传递到grep来查找rsync打开的文件,将输出到grep的管道以查找打开的目录/文件。


0

正如KirályIstván所建议的,我正在跑步

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

这给出了类似的输出

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

从该输出中,我可以看到正在复制哪个目录。

rsync缓慢复制大量大文件的情况下,我可以watch像这样监视该目录。这样,我可以看到所rsync创建的临时文件,并且可以看到当前正在复制的文件的大小正在增长。

watch -n1 "~/Music/iTunes"

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.