通过Crontab实现以秒为单位执行任务的方法

 
通过Crontab实现以秒为单位执行任务的方法

大家都知道Crontab最小只能设置以分为单位执行任务, 有的时候确实有以秒为单位来执行任务的需求, 比如HA的心跳检测.

现在可以采用一个看起来很笨, 却非常靠谱的方法, 如下示例:

crontab -e

--------------------------------------------------

* * * * * date >>/tmp/test.log

* * * * * sleep 1  && date >>/tmp/test.log

* * * * * sleep 2  && date >>/tmp/test.log

* * * * * sleep 3  && date >>/tmp/test.log

* * * * * sleep 4  && date >>/tmp/test.log

* * * * * sleep 5  && date >>/tmp/test.log

* * * * * sleep 6  && date >>/tmp/test.log

* * * * * sleep 7  && date >>/tmp/test.log

* * * * * sleep 8  && date >>/tmp/test.log

* * * * * sleep 9  && date >>/tmp/test.log

* * * * * sleep 10 && date >>/tmp/test.log

* * * * * sleep 11 && date >>/tmp/test.log

* * * * * sleep 12 && date >>/tmp/test.log

* * * * * sleep 13 && date >>/tmp/test.log

* * * * * sleep 14 && date >>/tmp/test.log

* * * * * sleep 15 && date >>/tmp/test.log

* * * * * sleep 16 && date >>/tmp/test.log

* * * * * sleep 17 && date >>/tmp/test.log

* * * * * sleep 18 && date >>/tmp/test.log

* * * * * sleep 19 && date >>/tmp/test.log

* * * * * sleep 20 && date >>/tmp/test.log

* * * * * sleep 21 && date >>/tmp/test.log

* * * * * sleep 22 && date >>/tmp/test.log

* * * * * sleep 23 && date >>/tmp/test.log

* * * * * sleep 24 && date >>/tmp/test.log

* * * * * sleep 25 && date >>/tmp/test.log

* * * * * sleep 26 && date >>/tmp/test.log

* * * * * sleep 27 && date >>/tmp/test.log

* * * * * sleep 28 && date >>/tmp/test.log

* * * * * sleep 29 && date >>/tmp/test.log

* * * * * sleep 30 && date >>/tmp/test.log

* * * * * sleep 31 && date >>/tmp/test.log

* * * * * sleep 32 && date >>/tmp/test.log

* * * * * sleep 33 && date >>/tmp/test.log

* * * * * sleep 34 && date >>/tmp/test.log

* * * * * sleep 35 && date >>/tmp/test.log

* * * * * sleep 36 && date >>/tmp/test.log

* * * * * sleep 37 && date >>/tmp/test.log

* * * * * sleep 38 && date >>/tmp/test.log

* * * * * sleep 39 && date >>/tmp/test.log

* * * * * sleep 40 && date >>/tmp/test.log

* * * * * sleep 41 && date >>/tmp/test.log

* * * * * sleep 42 && date >>/tmp/test.log

* * * * * sleep 43 && date >>/tmp/test.log

* * * * * sleep 44 && date >>/tmp/test.log

* * * * * sleep 45 && date >>/tmp/test.log

* * * * * sleep 46 && date >>/tmp/test.log

* * * * * sleep 47 && date >>/tmp/test.log

* * * * * sleep 48 && date >>/tmp/test.log

* * * * * sleep 49 && date >>/tmp/test.log

* * * * * sleep 50 && date >>/tmp/test.log

* * * * * sleep 51 && date >>/tmp/test.log

* * * * * sleep 52 && date >>/tmp/test.log

* * * * * sleep 53 && date >>/tmp/test.log

* * * * * sleep 54 && date >>/tmp/test.log

* * * * * sleep 55 && date >>/tmp/test.log

* * * * * sleep 56 && date >>/tmp/test.log

* * * * * sleep 57 && date >>/tmp/test.log

* * * * * sleep 58 && date >>/tmp/test.log

* * * * * sleep 59 && date >>/tmp/test.log

--------------------------------------------------

看一下结果, 基本上很准哦.

tail -100f /tmp/test.log

Thu Jul  7 18:20:00 HKT 2011

Thu Jul  7 18:20:01 HKT 2011

Thu Jul  7 18:20:02 HKT 2011

Thu Jul  7 18:20:03 HKT 2011

Thu Jul  7 18:20:04 HKT 2011

Thu Jul  7 18:20:05 HKT 2011

Thu Jul  7 18:20:06 HKT 2011

Thu Jul  7 18:20:07 HKT 2011

Thu Jul  7 18:20:08 HKT 2011

Thu Jul  7 18:20:09 HKT 2011

Thu Jul  7 18:20:10 HKT 2011

Thu Jul  7 18:20:11 HKT 2011

Thu Jul  7 18:20:12 HKT 2011

Thu Jul  7 18:20:13 HKT 2011

Thu Jul  7 18:20:14 HKT 2011

Thu Jul  7 18:20:15 HKT 2011

Thu Jul  7 18:20:16 HKT 2011

Thu Jul  7 18:20:17 HKT 2011

Thu Jul  7 18:20:18 HKT 2011

Thu Jul  7 18:20:19 HKT 2011

Thu Jul  7 18:20:20 HKT 2011

Thu Jul  7 18:20:21 HKT 2011

Thu Jul  7 18:20:22 HKT 2011

Thu Jul  7 18:20:23 HKT 2011

Thu Jul  7 18:20:24 HKT 2011

Thu Jul  7 18:20:25 HKT 2011

Thu Jul  7 18:20:26 HKT 2011

Thu Jul  7 18:20:27 HKT 2011

Thu Jul  7 18:20:28 HKT 2011

Thu Jul  7 18:20:29 HKT 2011

Thu Jul  7 18:20:30 HKT 2011

Thu Jul  7 18:20:31 HKT 2011

Thu Jul  7 18:20:32 HKT 2011

Thu Jul  7 18:20:33 HKT 2011

Thu Jul  7 18:20:34 HKT 2011

Thu Jul  7 18:20:35 HKT 2011

Thu Jul  7 18:20:36 HKT 2011

Thu Jul  7 18:20:37 HKT 2011

Thu Jul  7 18:20:38 HKT 2011

Thu Jul  7 18:20:39 HKT 2011

Thu Jul  7 18:20:40 HKT 2011

Thu Jul  7 18:20:41 HKT 2011

Thu Jul  7 18:20:42 HKT 2011

Thu Jul  7 18:20:43 HKT 2011

Thu Jul  7 18:20:44 HKT 2011

Thu Jul  7 18:20:45 HKT 2011

Thu Jul  7 18:20:46 HKT 2011

Thu Jul  7 18:20:47 HKT 2011

Thu Jul  7 18:20:48 HKT 2011

Thu Jul  7 18:20:49 HKT 2011

Thu Jul  7 18:20:50 HKT 2011

Thu Jul  7 18:20:51 HKT 2011

Thu Jul  7 18:20:52 HKT 2011

Thu Jul  7 18:20:53 HKT 2011

Thu Jul  7 18:20:54 HKT 2011

Thu Jul  7 18:20:55 HKT 2011

Thu Jul  7 18:20:56 HKT 2011

Thu Jul  7 18:20:57 HKT 2011

Thu Jul  7 18:20:58 HKT 2011

Thu Jul  7 18:20:59 HKT 2011


如果设置每10秒执行一次任务, 那么就如下设置:

--------------------------------------------------

* * * * * date >>/tmp/test.log
* * * * * sleep 9  && date >>/tmp/test.log
* * * * * sleep 19 && date >>/tmp/test.log
* * * * * sleep 29 && date >>/tmp/test.log
* * * * * sleep 39 && date >>/tmp/test.log
* * * * * sleep 49 && date >>/tmp/test.log
* * * * * sleep 59 && date >>/tmp/test.log
--------------------------------------------------

其它依此类推.

不建议那种在shell里通过sleep的方式来实现, 因为shell本身自己需要执行时间, 其实不准的.

--END--

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值