麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Linux Shell > 正文

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

2020-07-27 19:13:12
字體:
來源:轉載
供稿:網友

需要用到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也是需要一定時間的,即使已經加了&符號放到了后臺執行也會存在一定的誤差。如果對于精確度要求不高,推薦使用第二種方法。

工作中的一次用 PHP腳本每隔3秒鐘去監控一個Memcached代理服務器Magent的運行狀態。

復制代碼 代碼如下:

crontab -e
#-----------------------------------------------------------------
*/1 * * * * /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * *  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 3 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 6 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 9 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 12 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 15 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 18 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 21 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 24 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 27 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 30 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 33 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 36 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 39 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 42 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 45 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 48 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 51 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 54 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
*/1 * * * * sleep 57 &&  /usr/local/php/bin/php  /usr/local/nginx/www/MemcachedMagent/index.php  172.16.8.81 >/dev/null 2>&1
#-----------------------------------------------------------------

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久久久日韩精品一区二区 | 91成人影库 | 免费看黄色一级片 | 久久国产综合精品 | 国产chinesehd精品91 | 女人解衣喂奶电影 | 97视频| 日韩视频在线视频 | 久久久久久久久久亚洲 | 少妇一级淫片高潮流水电影 | 国产69精品久久久久9999不卡免费 | 精品日韩欧美 | 亚洲影院在线 | 成熟女人特级毛片www免费 | 亚洲综合无码一区二区 | 青草久久网 | 欧美老外a级毛片 | 视频h在线| 欧美中文字幕一区二区 | 日韩做爰视频免费 | 91性视频| 国产日韩久久久久69影院 | www.91sese | 成人在线观看地址 | 成人福利在线看 | 国产一级毛片高清视频完整版 | 欧美人禽 | xvideos korean| 中文字幕在线免费看 | 日日鲁一鲁视频 | 国产电影精品久久 | 青久草视频| 免看黄大片aa| 操碰 | 亚洲91网 | 成人三级电影网 | 日韩三级伦理在线观看 | 久久久三区 | 91欧美视频 | 久草视频福利在线观看 | 国产1级视频 |