首页 > 代码库 > linux下的“定时器”:crontab
linux下的“定时器”:crontab
1、概述
crontab是用来设置在固定时间点或时间间隔执行某条指令,类似于时程表。使用-u user是指定user用户的时程表。
2、参数
-e[UserName] :调出编辑器,编辑定时任务,打开后里边有多重文本编辑器,可更具自己偏好选择,若未指定UserName,则是当前shell下的用户
-r[UserName] :删除指定用户当前的时程表,则是当前shell下的用户
-l[UserName] :列出指定用户当前的时程表,则是当前shell下的用户
-v[UserName] :列出指定用户的cron作业状态,则是当前shell下的用户
3、时程表的格式说明
F1 F2 F3 F4 F5 program(分钟 小时 日 月 星期 作业命令)
例如:5 */1 * * * /usr/sbin/ntpdate cms是指在每小时的第5分钟执行/usr/sbin/ntpdate cms这个命令。
说明见下图:
4、样例
#每天早上6点10分
10 6 * * * date
#每两个小时
0 */2 * * * date
#晚上11点到早上8点之间每两个小时,早上8点
0 23-7/2,8 * * * date
#每个月的4号和每个礼拜一到礼拜三的早上11点
0 11 4 * 1-3 date
#1月1日早上4点
0 4 1 1 * date
编写执行命令时要注意当前的环境变量。
5、与sleep配合实现秒级别的定时
如果你在终端直接执行:
sleep 3s;/bin/date
很明显的能看到,sleep可以延时执行命令,那么和crontab结合就实现了秒级别的定时,如下:
* * * * * sleep 10s; /bin/date >>/tmp/date.txt* * * * * sleep 20s; /bin/date >>/tmp/date.txt* * * * * sleep 30s; /bin/date >>/tmp/date.txt* * * * * sleep 40s; /bin/date >>/tmp/date.txt* * * * * sleep 50s; /bin/date >>/tmp/date.txt
这时候观察/temp/date.txt,就可看见每10秒有条时间记录。
当然,sleep时间单位也有分、时、天(m, h, d),本例中只使用了秒。
linux下的“定时器”:crontab
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。