Linux秒級間隔的計畫任務指令碼

2021-08-27 19:17:23 字數 954 閱讀 8439

linux的 cron 計畫任務最短間隔只有一分鐘,在一些要求下,需要計畫任務指令碼以秒級別的間隔執行,比如一些佇列處理程式,狀態檢測程式等等。這個使用shell 的 while, sleep 即可實現,實際就是形成乙個死迴圈,反覆執行指定的流程。如果要退出這個程式,直接殺死程序即可。但是我見過一些人寫的指令碼,沒有考慮到指令碼意外被中斷時的恢復問題,或單例項問題(即此任務只能執行一次)。

1,自定義執行間隔

2,單例項(只能執行一次,多次執行是無效的)

3,訊號處理(可接收普通的程序控制訊號)

second-cron.sh的內容:

#!/bin/bash

interval=5

single_instance=y

pidfile=/var/lock/subsys/`basename $0`.pid

if [ "$single_instance" == "y" ] ; then

if [ -f $pidfile ] && [ -e /proc/`cat $pidfile` ] ; then

exit 1

fifi

trap "rm -fr $pidfile ; exit 0" 1 2 3 15

echo $$ > $pidfile

function process()

while [ 1 ]

doprocess

sleep $interval

done

內容非常簡單,請根據具體需要修改檔名稱,interval, single_instance 幾項引數。 process 函式中的處理流程請自行根據需要完善即可。

如果要避免此指令碼意外退出後能自行恢復,請在cron 計畫任務中新增:*/1 * * * * /root/second-cron.sh

如此,即使當前指令碼意外中斷退出,也能自行恢復,一定程度上保證了可靠性。

[url]

[img]

Linux計畫任務

1.at命令 指定乙個時間執行乙個任務。2.cron命令 根據乙個時間表自動執行任務。3.anacron命令 在乙個指定時間間隔錯過後自動執行任務。at命令 安排乙個任務在未來執行,需要乙個系統後台atd程序。4.如果這個程序沒有開啟,那麼執行 etc init.d atd restart chkc...

Linux 計畫任務

at命令可以在某一指定時間排程一次性作業命令格式 at q x l f file d v time引數含義 q使用指定的佇列來儲存at資料,預設儲存在a佇列,隊列表號為a z,a z總52個 l列出所有的at計畫任務,等同於atq命令 d刪除at計畫任務,等同於atrm v列出所有已經完成單尚未刪除...

linux計畫任務

cron是乙個linux下的定時執行工具,可以在無需人工干預的情況下執行作業。由於cron 是linux的內建服務,但它不自動起來,可以用以下的方法啟動 關閉這個服務 sbin service crond start 啟動服務 sbin service crond stop 關閉服務 sbin se...