2017-07-30 108 views
0

我有一个睡眠和复制功能来检索每天在群集节点上运行的模拟输出。它基本如下所示:每隔n秒复制一次

sleep_and_copy() { 
while true; do 
sleep 85600s 
copy_data 
done 
} 

其中copy_data将执行复制。问题是copy_data需要很长时间才能执行。换句话说,我的副本只发生在每个85600s + 时间的副本

有没有一种方法可以每隔n秒完成一次复制?

+1

将'copy_data'替换为'copy_data&'? – Cyrus

+0

是否有一个bash函数来计算要执行的操作需要多长时间?或者是一个给出当前时间的函数?只要算出它花了多少秒,从85600s减去,并为此睡眠。 – Carcigenicate

+1

也许看cron工作? –

回答

0

要每24小时(= 86400s)运行复制脚本,请使用cron作业!这也确保了任务在重新启动后运行。

如果你真的想用一个脚本并运行它的每一个85600s,你可以简单地做到以下几点:

while true; do 
    sleep 85600s 
    copy_data & 
done 

&开始无论copy_data确实在后台进程并立即返回。

相关问题