【发布时间】:2018-01-06 03:27:48
【问题描述】:
我有一个睡眠和复制功能来检索在集群节点上运行的模拟的每日输出。基本上是这样的:
sleep_and_copy() {
while true; do
sleep 85600s
copy_data
done
}
copy_data 将执行复制。问题是copy_data 需要很长时间才能执行。换句话说,我的副本仅每 85600 秒 + 一次复制一次。
有没有办法每 n 秒精确地执行一次复制?
【问题讨论】:
-
用
copy_data &替换copy_data? -
是否有一个 bash 函数来计时执行某事需要多长时间?还是给出当前时间的函数?只需计算花费了多少秒,从 85600 秒中减去它,然后为此休眠。
-
也许看看 cron 作业?
-
顺便说一句:看看 bash 的特殊变量 SECONDS:
SECONDS=0; sleep 5; echo $SECONDS -
85600 是错字,86400 是正确的值吗?那我推荐一个cronjob。
标签: bash sleep background-process cp