2016-08-22 70 views
1

我正在研究一次運行約30分鐘的bash腳本。就這一部分而言,我已經穩定運行了。我一直在尋找一種方法,使其在運行時每隔3分鐘以內的某個指令觸發某些命令。我沒有任何運氣,所以我轉向那些可能比我更瞭解bash的人。如何使bash腳本定期執行命令

有什麼建議嗎?

這是我想要做的。

START=$(date +%s); 

while read LINE <&3; do 
END=$(date +%s); 
if [[ $(($END-$START)) > 180 || $(($END-$START)) == 180 ]] 
then 
$START=$(date +%s); 
run command 
fi 
done 
+0

請編輯您的問題以顯示[迄今嘗試的內容](http://whathaveyoutried.com)。您應該包含您遇到問題的代碼[mcve],然後我們可以嘗試幫助解決特定問題。你還應該閱讀[問]。 –

回答

1

您可以在後臺運行一個循環:

{ while /bin/true; do some_command; sleep 180; done; } & 
loop_pid=$! 

然後,主腳本退出之前,殺死後臺循環:

kill $loop_pid 
2

添加cron作業使其每3分鐘運行一次。

*/3 * * * * /path/to/script 
0

您也可以從同一腳本中調用相同的腳本。

$ cat script.sh 

#!/bin/bash 

# commands 
# commands 

sleep 1800 
sh $0