我正在使用以下 cron 语句从一个文件夹备份到同一台机器上的另一个文件夹:
19 21 * * * root rsync -ac --delete /source/folder /dest/folder
当我使用时pstree
,我看到 cron 分叉了三个进程
├─cron───cron───rsync───rsync───rsync
和ps
9972 ? Ds 1:00 rsync -ac --delete /source/folder /dest/folder
9973 ? S 0:29 rsync -ac --delete /source/folder /dest/folder
9974 ? S 0:09 rsync -ac --delete /source/folder /dest/folder
为什么是三个进程?我可以限制为只有一个吗?
答案1
http://rsync.samba.org/how-rsync-works.html
Rsync 是高度流水线化的。这意味着它是一组以(很大程度上)单向方式通信的进程。一旦文件列表被共享,管道的行为如下:
生成器 → 发送器 → 接收器生成器的输出是发送者的输入,发送者的输出是接收者的输入。每个进程独立运行,只有当管道停滞或等待磁盘 I/O 或 CPU 资源时才会延迟。
您正在运行本地 rsync(源和目标是本地文件系统),因此所有三个进程都将在那里运行。
您无能为力,这是设计使然。