国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

讓Linux下的cron以秒為單位執行shell腳本的3種方法

2019-10-26 18:42:54
字體:
來源:轉載
供稿:網友

需要用到Shell腳本每隔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 讓它每次開機都可以被運行。

第二種方法:

和第一種方法類似,只不過感覺比第一種更便捷一些。

代碼如下:
#!/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 2014-10-15
*/1 * * * *  /home/somedir/scripts.sh
*/1 * * * * sleep 3 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 6 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 9 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 12 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 15 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 18 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 21 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 24 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 27 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 30 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 33 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 36 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 39 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 42 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 45 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 48 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 51 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 54 &&  /home/somedir/scripts.sh
*/1 * * * * sleep 57 &&  /home/somedir/scripts.sh
#-----------------------------------------------------------------

他的思路是:先每隔1秒鐘觸發定時任務,然后又休眠 3秒、6秒、9秒等間隔 來執行具體的Shell腳本。

我還是比較傾向于使用第三種方法的。因為第一種方法和第二種方法并不是嚴格的間隔3秒執行的,會大于3秒,因為執行scripts.sh也是需要一定時間的,即使已經加了&符號放到了后臺執行也會存在一定的誤差。如果對于精確度要求不高,推薦使用第二種方法。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 彭阳县| 清水河县| 昆明市| 张家界市| 延吉市| 黎平县| 沧源| 仙桃市| 华阴市| 虹口区| 云龙县| 临潭县| 铜陵市| 罗定市| 白河县| 金秀| 交口县| 凤凰县| 习水县| 泰顺县| 乳源| 西平县| 承德县| 闽侯县| 临海市| 长春市| 乐平市| 上杭县| 荆州市| 张家口市| 温宿县| 林芝县| 丰县| 天峨县| 平湖市| 贵德县| 阜新| 永和县| 平阳县| 吉隆县| 灵寿县|