最近在搞whenever时看到可以用cron语法设置定时任务。所以研究了下cron 语法。
every '0 0 27-31 * *' do command "echo 'you can use raw cron syntax too'" end
cron
命令,用于设置周期性被执行的指令。
格式
# 文件格式说明 # ——分钟 (0 - 59) # | ——小时 (0 - 23) # | | ——日 (1 - 31) # | | | ——月 (1 - 12) # | | | | ——星期 (0 - 7)(星期日=0或7) # | | | | | # * * * * * 被执行的命令
1,*符号:
30 18 * * * #do something
表示每天18点30分运行命令。其中*表示任意值,此例中就是说,不考虑日, 月 和 星期的值。
如果*在前:
* 5 * * * #do something
表示从凌晨5点到凌晨6点之间,每分钟运行一次。
2,用逗号分割的值:
0 0 1,5,10 * * #do something
表示在一个月的第1天,第5天,第10天的0点0分运行命令。
3,range:
0 0 * * 1-5 #do something
1-5表示从星期一到星期五每天0点0分运行命令ls。
4, 如果同时指定了天和星期,就是都运行的关系。
0 0 10 * 1 #do something
在每个月的第10天和每个星期一运行命令。
5,斜杠
*/10 * * * * #do something
表示每隔10分钟运行一次命令。如果是0-10/5则表示,在每个小时头10分钟内,每5分钟运行一次。
* 10/2 * * * #do something
则表示从每天的第10小时开始,每隔2小时的一个小时间隔内,每秒运行一次。
cron语法只能精确到分钟,配合whenever 用起来还是很厉害的。