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

van*_*anz 26 rsync

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

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

知道我怎么能做到这一点吗?

Sté*_*las 47

您可以执行以下操作(在 POSIX shell 中,包括bash):

strace -e open,openat $(ps -o lwp= -LC rsync | sed 's/^/-p/')
Run Code Online (Sandbox Code Playgroud)

或在zsh

strace -e open,openat -p${^$(ps -o lwp= -LC rsync)}
Run Code Online (Sandbox Code Playgroud)

或者在 fish

strace -e open,openat -p(ps -o lwp= -LC rsync)
Run Code Online (Sandbox Code Playgroud)

或在rc/ es

strace -e open,openat -p`{ps -o lwp= -LC rsync}
Run Code Online (Sandbox Code Playgroud)

看看它在做什么,或者

lsof -ad3-999 -c rsync
Run Code Online (Sandbox Code Playgroud)

查看它当前打开了哪些文件。