歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux秒級間隔的計劃任務腳本

Linux秒級間隔的計劃任務腳本

日期:2017/2/28 15:35:08   编辑:Linux教程

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

fi

fi

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

echo $$ > $pidfile

function process() {

echo "process ..." > /dev/null

}

while [ 1 ]

do

process

sleep $interval

done

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

如果要避免此腳本意外退出後能自行恢復,請在cron 計劃任務中添加:

*/1 * * * * /root/second-cron.sh

源代碼下載

下載在Linux公社的1號FTP服務器裡,下載地址:

FTP地址:ftp://www.linuxidc.com

用戶名:www.linuxidc.com

密碼:www.muu.cc

在 2012年LinuxIDC.com\8月\Linux秒級間隔的計劃任務腳本

下載方法見 http://www.linuxidc.net/thread-1187-1-1.html

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

Copyright © Linux教程網 All Rights Reserved