昨天寫了一個需求的應用腳本,根據實際需求最好能使它每隔3秒鐘自動執行一次,可是crond似乎只支持到分,怎麼辦呢?
第一種方法:
當然首先想到的是寫一個觸發的腳本,在觸發腳本中使用死循環來解決此問題,如下:
cat kick.sh
--------
#!/bin/bash
while : ;do
/home/somedir/scripts.sh 2>/dev/null &
sleep 3
done
-----------
注意第一次運行時請不要使用bash kick.sh & 這種後臺運行的方式,它會僵死的。
可以把它放到計劃任務使其運行,然後將計劃任務中的此條目刪除即可。最後把這個腳本放到/etc/rc.local讓它每次開機都可以被運行。
第二種方法:
和第一種方法類似,只不過感覺比第一種更便捷一些。
cat cron-seconds.sh
------------
#!/bin/bash
#For excuting the scripts every 3 seconds in crond.
#20100124.WXG
for((i=1;i<=20;i++));do
/home/somedir/scripts.sh 2>/dev/null &
sleep 3
done
----------------
然後寫入的crontab裏每分鐘執行一次,如下
crontab -e
--------
* * * * * /bin/bash /home/somedir/cron-seconds.sh
---------------
第三種方法:
那麼如何使用計劃任務來直接實現呢?
最後解決方案如下,經驗證,腳本運行非常穩定。
crontab -e
---------------------
## For excuting scripts.sh every 3 seconds##on 2010-01-22
* * * * * /home/somedir/scripts.sh
* * * * * sleep 3 && /home/somedir/scripts.sh
* * * * * sleep 6 && /home/somedir/scripts.sh
* * * * * sleep 9 && /home/somedir/scripts.sh
* * * * * sleep 12 && /home/somedir/scripts.sh
* * * * * sleep 15 && /home/somedir/scripts.sh
* * * * * sleep 18 && /home/somedir/scripts.sh
* * * * * sleep 21 && /home/somedir/scripts.sh
* * * * * sleep 24 && /home/somedir/scripts.sh
* * * * * sleep 27 && /home/somedir/scripts.sh
* * * * * sleep 30 && /home/somedir/scripts.sh
* * * * * sleep 33 && /home/somedir/scripts.sh
* * * * * sleep 36 && /home/somedir/scripts.sh
* * * * * sleep 39 && /home/somedir/scripts.sh
* * * * * sleep 42 && /home/somedir/scripts.sh
* * * * * sleep 45 && /home/somedir/scripts.sh
* * * * * sleep 48 && /home/somedir/scripts.sh
* * * * * sleep 51 && /home/somedir/scripts.sh
* * * * * sleep 54 && /home/somedir/scripts.sh
* * * * * sleep 57 && /home/somedir/scripts.sh
#-----------------------------------------------------------------
好好想想就可以明白其中的道理了。
我還是比較傾向於使用第三種方法的。因爲第一種方法和第二種方法並不是嚴格的間隔3秒執行的,會大於3秒,因爲執行scripts.sh也是需要一定時間的,即使已經加了&符號放到了後臺執行也會存在一定的誤差。如果對於精確度要求不高,推薦使用第二種方法。
讓crond以秒爲單位執行任務的方法(如每隔3秒)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
Linux基本操作命令
wbzjacky
2019-02-24 13:12:38
Linux核心技能与应用
wy53780
2020-04-23 14:02:05
Python與家國天下
豌豆花下貓
2019-02-24 22:22:40
linux上安裝Docker(非常簡單的安裝方法)
幸運券發放
2019-02-24 19:38:01
2019年Java面試-併發容器篇
王知無
2019-02-24 15:12:46
淺淡個人學習嵌入式Linux過程
wx5c317e5b736d2
2019-02-24 13:31:30
DHCP服務原理與搭建(Linux系統+路由器,二選一方案)
wx5c7174443c6f9
2019-02-24 13:23:18
Redis安裝與配置
劉遄
2019-02-24 13:12:51
如果同事暗中傷害你,應該怎麼辦?
這個饅頭有餡
2019-02-24 13:59:08
職場中,抱怨越多的員工,越被領導瞧不起!
這個饅頭有餡
2019-02-24 13:59:08
老程序員被裁,應屆生卻能月薪 1.3 萬?這你能忍?
前端高達
2019-02-24 13:48:04
遇到到處蹭吃卻從不請客吃飯的主怎麼辦?
樑軍年
2019-02-24 13:26:35
高標準機房綜合配線安裝
wbzjacky
2019-02-24 13:12:38