2017-07-30 107 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確實在後臺進程並立即返回。

相關問題