服务器产生大量数据,我希望尽可能连续地下载这些数据。最简单的想法就是使用
watch rsync ...
据我了解,每2秒watch
就会调用一次。rsync
那么关键问题是:如果rsync
在那 2 秒内不退出会发生什么?rsync
无论如何,它会每 2 秒启动一个新的,还是会等到前一个rsync
结束为止?
答案1
您可以通过运行类似的命令来检查这一点
watch "date >> watch.log; echo Sleeping; sleep 10"
这将使用默认的两秒间隔。如果你让它运行一会儿,你会看到它watch.log
每十二秒记录一次日期和时间 - 所以watch
运行它的命令,等待它完成,然后等待配置的时间间隔,然后再次运行该命令。
答案2
符合测试
watch updatedb
它会等待程序完成,然后再开始另一个会话。
我不确定使用 watch 运行 rsync 是否有意义。如果要触发定期运行,请使用 cron。
如果您想更频繁地运行 rsync,请编写带有永远循环的脚本(而 true 则这样做)并使用 pgrep 来检测正在运行的 rsync。如果检测到,请等待定义的时间并在周期的另一次迭代中进行测试。