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
exit1
fi
fi
trap"rm-fr$pidfile;exit0"12315
echo$$>$pidfile
functionprocess(){
echo"process...">/dev/null
}
while[1]
do
process
sleep$interval
done
内容非常简单,请根据具体需要修改文件名称,interval,single_instance几项参数。process函数中的处理流程请自行根据需要完善即可。
如果要避免此脚本意外退出后能自行恢复,请在cron计划任务中添加:*/1****/root/second-cron.sh
如此,即使当前脚本意外中断退出,也能自行恢复,一定程度上保证了可靠性。
更多精彩linux视频教程,尽在51CTO学院:
http://edu.51cto.com/course/courseList/id-48.html