Linux实现秒级定时任务(crontab)Shell小脚本


     今天领导让我配置一个服务器job,要求是暂时每秒钟都要跑一次。本来想到去crontab配置。Linux的定时任务简单地配置到crontab里面就可以了,设置方法也很简单,如下所示,6个参数依次表示为“分、时、日、月、周和具体任务”(示例为每天凌晨3点执行freshclam工作)。

[root@student ~]# crontab -l
0 3 * * * freshclam


     所以,从5个时间参数来看最小是精确到某一分钟执行。当然,通过互相组合已经满足绝大多数定时任务的需求了,毕竟,秒级别的定时任务还是比较少见和少用到的。既然5个时间参数没法实现,就只能靠其他方法了。于是想到写一个脚本,就如以下Shell小脚本。

#! /bin/bash
# Author    : 蛙鳜鸡鹳狸猿
# create    : 2016年 12月 19日 星期一 21:24:21 CST
# program   : process of second level crontab to script
# crontab   : NULL
# 
# 
# way 1
# for (( i=0; i<i+1; i++ ))
 # do
   # echo "@ $(date) I LOVE YOU" && sleep 1
 # done
# 
# 
# way 2
# while true
# do
 # echo "@ $(date) I LOVE YOU" && sleep 1
# done
# 
# 
# way 3
until false
do
 echo "@ $(date) I LOVE YOU" && sleep 1
done
# 

     方法就是把命令放入一个条件永远满足或不满足的循环中每隔1秒执行一次。过程很简单!具体来说三种循环for、while和until都可以实现。这里也给出了三个脚本way 1,way 2和way 3。建议的话是用第三种,即没有注掉的way 3。第一种既要维持一个i计数器,同时也要做大小比较。第二种和第三种其实是一样的,区别在于第三种理解起来更粗暴,“一直do …… 直到 …… done”,适合于我们这个粗暴的环境。示例中是直到 “false” 否则每秒钟输出当前系统时间加上“I LOVE YOU”。LOVE个鬼,具体用的时候换成其他命令就行了,隔多少秒执行一次就改一下sleep参数。将其写入脚本执行后,就相当于实现了秒级别的定时任务crontab了!




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值