我有一个shell脚本,顺序运行四个rsync命令。此脚本计划使用CRON作业每20分钟运行一次。 有时rsync进程占用CPU利用率高达30%,从而减慢服务器速度。这导致了问题。
这是我的剧本:
### rsync_script.sh
#!/bin/bash
rsync -avz --delete --bwlimit=5000 /path1/to/file/filename_* root@1.1.1.1:/destination/path1/
rsync -avz --delete --bwlimit=5000 /path2/to/file/filename_* root@1.1.1.1:/destination/path2/
rsync -avz --delete --bwlimit=5000 /path3/to/file/filename_* root@1.1.1.1:/destination/path3/
rsync -avz --delete --bwlimit=5000 /path4/to/file/filename_* root@1.1.1.1:/destination/path4/
我执行cron工作:
*/20 * * * * /bin/sh /path/to/script/rsync_script.sh
我需要检查一下,如果rsync的CPU利用率超过5%,那么我需要停止脚本。
感谢任何帮助。
由于
答案 0 :(得分:0)
如果使用过多的CPU是您的问题,那么您可能会以较低的优先级安排它,而不是杀死该进程。
有关执行此操作的工具的说明,请参阅man 1 nice
。
您正在使用的-z
选项是压缩选项 - 如果您受CPU限制,可能需要进行调整和测试。
--stats
选项让您了解rsync关于效率的内部统计信息,同时也可以在调整内容时查看。