欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2014年10月20日 10:12:50   投稿:junjie  
這篇文章主要介紹了讓Linux下的cron以秒為單位執(zhí)行shell腳本的3種方法,cron默認(rèn)只支持以分為單位執(zhí)行Shell腳本的,需要的朋友可以參考下

需要用到Shell腳本每隔3秒鐘去監(jiān)控一個(gè)軟件進(jìn)程的運(yùn)行狀態(tài),發(fā)現(xiàn)crond似乎只支持到分,不知道秒,怎么辦呢?

第一種方法:

當(dāng)然首先想到的是寫(xiě)一個(gè)觸發(fā)的腳本,在觸發(fā)腳本中使用死循環(huán)來(lái)解決此問(wèn)題,如下:

cat kick.sh

復(fù)制代碼 代碼如下:

#!/bin/bash
while : ;do
 /home/somedir/scripts.sh 2>/dev/null &
 sleep 3
done

注意第一次運(yùn)行時(shí)請(qǐng)不要使用 bash kick.sh & 這種后臺(tái)運(yùn)行的方式,它會(huì)僵死的。

可以把它放到計(jì)劃任務(wù)使其運(yùn)行,然后將計(jì)劃任務(wù)中的此條目刪除即可。最后把這個(gè)腳本放到 /etc/rc.local 讓它每次開(kāi)機(jī)都可以被運(yùn)行。

第二種方法:

和第一種方法類似,只不過(guò)感覺(jué)比第一種更便捷一些。

復(fù)制代碼 代碼如下:

#!/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

然后寫(xiě)入的crontab里每分鐘執(zhí)行一次,如下:


復(fù)制代碼 代碼如下:

crontab -e
* * * * * /bin/bash /home/somedir/cron-seconds.sh

第三種方法:

那么如何使用計(jì)劃任務(wù)來(lái)直接實(shí)現(xiàn)呢?
最后解決方案如下,經(jīng)驗(yàn)證,腳本運(yùn)行非常穩(wěn)定。

復(fù)制代碼 代碼如下:

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秒鐘觸發(fā)定時(shí)任務(wù),然后又休眠 3秒、6秒、9秒等間隔 來(lái)執(zhí)行具體的Shell腳本。

我還是比較傾向于使用第三種方法的。因?yàn)榈谝环N方法和第二種方法并不是嚴(yán)格的間隔3秒執(zhí)行的,會(huì)大于3秒,因?yàn)閳?zhí)行scripts.sh也是需要一定時(shí)間的,即使已經(jīng)加了&符號(hào)放到了后臺(tái)執(zhí)行也會(huì)存在一定的誤差。如果對(duì)于精確度要求不高,推薦使用第二種方法。

工作中的一次用 PHP腳本每隔3秒鐘去監(jiān)控一個(gè)Memcached代理服務(wù)器Magent的運(yùn)行狀態(tài)。

復(fù)制代碼 代碼如下:

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
#-----------------------------------------------------------------

相關(guān)文章

最新評(píng)論