1. 程式人生 > >如何讓Linux定時任務crond以秒為單位執行(如每隔3秒)

如何讓Linux定時任務crond以秒為單位執行(如每隔3秒)

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

第二種方法:

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

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

  1. ## For excuting scripts.sh every 3 seconds##on 2014-10-15

  2. */1 * * * * /home/somedir/scripts.sh

  3. */1 * * * * sleep 3 && /home/somedir/scripts.sh

  4. */1 * * * * sleep 6 && /home/somedir/scripts.sh

  5. */1 * * * * sleep 9 && /home/somedir/scripts.sh

  6. */1 * * * * sleep 12 && /home/somedir/scripts.sh

  7. */1 * * * * sleep 15 && /home/somedir/scripts.sh

  8. */1 * * * * sleep 18 && /home/somedir/scripts.sh

  9. */1 * * * * sleep 21 && /home/somedir/scripts.sh

  10. */1 * * * * sleep 24 && /home/somedir/scripts.sh

  11. */1 * * * * sleep 27 && /home/somedir/scripts.sh

  12. */1 * * * * sleep 30 && /home/somedir/scripts.sh

  13. */1 * * * * sleep 33 && /home/somedir/scripts.sh

  14. */1 * * * * sleep 36 && /home/somedir/scripts.sh

  15. */1 * * * * sleep 39 && /home/somedir/scripts.sh

  16. */1 * * * * sleep 42 && /home/somedir/scripts.sh

  17. */1 * * * * sleep 45 && /home/somedir/scripts.sh

  18. */1 * * * * sleep 48 && /home/somedir/scripts.sh

  19. */1 * * * * sleep 51 && /home/somedir/scripts.sh

  20. */1 * * * * sleep 54 && /home/somedir/scripts.sh

  21. */1 * * * * sleep 57 && /home/somedir/scripts.sh

  22. #-----------------------------------------------------------------

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

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

相關推薦

如何Linux定時任務crond單位執行(3)

需要用到Shell指令碼每隔3秒鐘去監控一個軟體程序的執行狀態,發現crond似乎只支援到分,不知道秒,怎麼辦呢? 第一種方法: 當然首先想到的是寫一個觸發的指令碼,在觸發指令碼中使用死迴圈來解決此問題,如下: cat kick.sh #!/bin/bash wh

Linux下寫定時任務tp5

tp5框架 首先在框架裡面寫個介面,然後在框架頂層建一個.sh檔案,跑這個指令碼,指令碼內容為 curl -g 'http://www.baidu.com/api/Index/index' 2.然後登陸linux伺服器進去etc下面

實現定時任務crontab單位執行。。

#!/bin/bash step=2 #間隔的秒數,不能大於60 for (( i = 0; i < 60; i=(i+step) )); do $(php '/h

Linux定時任務crond和crondtab

crond:作業規劃程序是Linux下用來定期執行命令或指定程式任務的一種服務或軟體。 安裝完作業系統後,預設會啟動crond任務排程服務。crond服務會定期檢查系統中是 否有要執行的任務。如果有

LinuxLinux定時任務crond

作業規劃程序crond是Linux下用來定期執行命令或指定程式任務的一種服務或軟體。執行linux後,開機自啟動crond任務,系統會每分鐘檢查是否有要執行的任務工作(迴圈檢測)。linux系統中定時任務排程的工作可以分為以下兩個情況: 1. linux系統

演算法:從鍵盤輸入一定金額(單位345.78),然後顯示支付該金額的各人民幣數量

從鍵盤輸入一定金額(以元為單位,如345.78),然後顯示支付該金額的各人民幣數量,要求顯示100元、50元、10元、5元、2元、1元、5角、1角、5分、1分各多少(輸出面額最大值:比如 345.78 = 100×3 + 10×4 + 5×1 + 0.5×1 +

Android LifecycleObserver & ScheduledThreadPoolExecutor使用者可見時3週期更新,使用者不可見時暫停週期更新

Android LifecycleObserver & ScheduledThreadPoolExecutor使用者可見時每隔3秒週期更新,不可見時暫停每隔3秒的週期更新 簡言之,當用戶按home鍵把當前App切換至“後臺”不可見時候(使用者看不見當前App頁面時候),暫停每隔3秒的

Android LifecycleObserver & ScheduledThreadPoolExecutor使用者可見時3週期更新,使用者不可見時暫停週期更新

Android LifecycleObserver & ScheduledThreadPoolExecutor使用者可見時每隔3秒週期更新,不可見時暫停每隔3秒的週期更新 簡言之,當用戶按home鍵把當前App切換至“後臺”不可見時候(使用者看不見當前App頁面時候

寫一個執行10輸出一次“HelloWorld”,輸出10次後退出

public class HelloWorld { public static void main(String[] args) { //建立執行緒要執行的任務 Runnable r1 = new MyRunnable(); //建立執行緒 Thread

Linux定時任務Crond使用

格式 子郵件 .com color hour blog 分鐘 16px 特定 一、用法 crond服務是linux系統自帶的服務,是不需要手動安裝的; crond服務是一種守護進程; Linux中的用戶使用contab命令來配置corn任務; crontab –e : 修

Linux定時任務服務crond

Linux定時任務的分類 1、系統自身定期執行的任務 如定期以日期命名的message開頭的檔案 [[email protected] ~]# ll /var/log/messages* -rw-------. 1 root root  89790 Nov&nb

linux系統定時任務crond入門

1,Crond: Crond是linux系統中用來定期執行命令或指定程式任務的一種服務或者軟體。(Centos5以後預設存在) 當優化開機自啟動的時候,第一個就是crond。 Crond服務預設情況(每分鐘),會檢查系統中是否有需要執行的定時任務,如果有哦,就會根據事先定義好的規

11-Linux定時任務Crond

src linux png 分享圖片 分享 image com 圖片 load          11-Linux的定時任務Crond

Linux定時任務crond/crontab

定時任務,顧名思義即固定一段時間執行一次某任務。 例如手機設定的鬧鐘、定時開關機等都屬於定時任務,那麼Linux要如何設定定時任務呢? crontab 首先認識crontab,該

crontab定時任務單位進行執行

前言 總所周知,linux的crontab定時任務最高只能執行到分鐘級別,每分鐘進行執行指定指令碼。 但是,有很多時候我們進行統計操作的時候,需要執行的頻率比較高,達到秒級。 接下來,整理下秒級的定時任務的開啟 1、進入定時任務管理編輯頁面 crontab -e 2、新增

linux定時任務crontab命令和crond服務詳解

linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是預設啟動的。另 外, 由於使用者自己也可以設定計劃任務,所以, Linux 系統也提供了使用者控制計劃任務的命令 :cron

linux定時任務精確到

linux的crond定時任務只能精確到分,如何才能做到控制到秒呢?答案肯定是明顯的,實現的方法也有多種,但本文只介紹一個相對來說比較精確,又方便的寫法。1、增加一個普通的定時器指令碼dateTime.

Linux定時任務Crontab命令

主目錄 日誌清理 文件中 定義 服務 系統命令 root spool 詳細 linux 系統則是由 cron (crond) 這個系統服務來控制的。Linux 系統上面原本就有非常多的計劃性工作,因此這個系統服務是默認啟動的。另 外, 由於使用者自己也可以設置計劃任務,所以

使用crontab,linux定時執行shell腳本

表示 inux 包含 tor span 之間 line mage sun 閱讀目錄 1. cron服務【Ubuntu環境】 2. crontab用法 3. 編輯crontab文件 4. 流程舉例 5. 幾個例子 Linux中,周期執行的任務一般由cron

linux定時任務crontab

9.png linux .cn 命令 png alt nbsp ont 技術分享 *  *  *  *  *  command 分 時 日 月 周 命令 linux定時任務crontab