检查rsync的CPU利用率,如果超过阈值则终止

时间:2017-07-06 05:39:53

标签: linux bash shell rsync

我有一个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%,那么我需要停止脚本。

感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

如果使用过多的CPU是您的问题,那么您可能会以较低的优先级安排它,而不是杀死该进程。

有关执行此操作的工具的说明,请参阅man 1 nice

您正在使用的-z选项是压缩选项 - 如果您受CPU限制,可能需要进行调整和测试。

--stats选项让您了解rsync关于效率的内部统计信息,同时也可以在调整内容时查看。

祝你好运 - 幸运的是,你可以调整一些东西。