crontab 总是隔一段时间就需要使用一次,但每次都需要定义一些比较奇怪的时间点,每次都查询一下相关格式觉得很麻烦,学习一下各种奇奇怪怪的写法
首先看一下crontab的使用方法,这个很简单
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
如上面显示,*
号可以理解为中文里的“每”的意思,以第一个*
为例,触发时机为
- 每分钟执行一次:’*'
- 每5分钟执行一次:’*/5'
- 第10分钟开始执行:‘10’
- 第5分钟和第10分钟各执行一次:‘5,10’(以’,‘隔开两个时间点)
- 第10分钟到第20分钟每分钟执行一次:‘10,20/1’或者'10-20/1’
同理,除了分钟适应这种写法外,小时/天数/月数/星期数均适应这种写法
同时还要注意月份/星期数均可以用英文代替(仔细看上面使用方法处的注释),例如每周一到周三0点执行某任务可以写成
0 0 * * mon-wed echo 'wowotou'