centos-rhel服务器相关 / 未分类 · 2016年9月7日

Linux下实现秒级定时任务的两种方案 crontab 每秒运行

第一种方案,当然是写一个后台运行的脚本一直循环,然后每次循环sleep一段时间。
while true ;do
command
sleep XX //间隔秒数
done

第二种方案,使用crontab。
我们都知道crontab的粒度最小是到分钟,但是我们还是可以通过变通的方法做到隔多少秒运行一次。
以下方法将每10秒执行一次

# 60必须能整除间隔的秒数(没有余数),例如间隔的秒数是2,4,6,10,12等。
* * * * * sleep 10; bash /data/mon/hs.sh

crontab -e
* * * * * /bin/date
* * * * * sleep 10; bash /data/mon/hs.sh
* * * * * sleep 20; /bin/date
* * * * * sleep 40; /bin/date
说明:需要将/bin/date更换成你的命令即可
* * * * * sleep 10; bash /data/mon/hs.sh
这种做法去处理隔几十秒的定时任务还好,要是每1秒运行一次就得添加60条记录。。。如果每秒运行还是用方案一吧。
linux crontab 实现每秒执行
http://blog.csdn.net/fdipzone/article/details/22701113