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