Crontab 的语法和使用


Author: yifei / Created: May 29, 2017, 11:41 p.m. / Modified: May 29, 2017, 11:46 p.m. / Edit

Crontab 时间的语法:

Minute Hour Day Month DoW

每一个选项默认都是第几的意思

另外:

比如

5 * * * * echo "hello world"

每小时的第五分钟打印 hello world

更多地例子

* * * * *   每分钟
12 * * * *  每小时第 12 分
0,15,30,45 * * * * 每小时的第 0, 15, 30, 45 分, 也就是每15分钟一次
0 4 * * *   每天的凌晨 4 点
0 4 * * 2   每周二的凌晨 4 点
*/4 2-6 * * *   2点和6点之间每 4 分钟一次, 也就是 0, 4, 8...

crontab 命令

应该使用 crontab 命令来编辑 crontab 文件, tab 就是 table 的缩写

crontab -e # 编辑 crontab
crontab -l # 列出 crontab
crontab -u # 指定用户

crontab 还支持一些特殊语法

@hourly 相当于 0 * * * * 也就是每小时执行
@daily  相当于 0 0 * * * 也就是每天执行
@weekly 相当于 0 0 0 0 0
monthly
@yearly
@reboot at reboot

NOTE:

# add these line to tweak cron behavior
SHELL=/bin/bash
HOME=/
MAILTO="example@digitalocean.com"

Cron 表达式的局限性

cron 表达式难以表达 "every x" 这个语义。比如说每隔 9 个小时如何, 每隔 13 分钟如何如何。

cron 的实现


有任何问题可以发邮件到 kongyifei (at) gmail.com 讨论