Linux Crontab 分时日月周表达式学习笔记

Colin 1年前 ⋅ 92 阅读
crontab的时间表达式,一共5位,用空格分开,按照顺序分别表达了分时日月周,五位时间表达式的描述如下所示:
# .---------------- 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

其中又包含了 反斜线(/)、逗号(,)、减号(-) 三个条件表达式含义分别如下:

/反斜线: 表示间隔

,逗号:表示and(和、与)

-减号: 表示范围(从...到...)

 

每分钟执行1次
* * * * * /usr/bin/say "过去一分钟了" 

 

每小时执行1次
0 * * * * /usr/bin/say "过去一小时了"

 

每天执行1次
0 0 * * * /usr/bin/say "又过去了一天(每天0点0分)" 

 

每月执行1次
0 0 1 * * /usr/bin/say "又过去了一个月(每月1日0点0分)"

 

每周执行1次
0 0 * * 1 /usr/bin/say "又过去了一礼拜(周一0点0分)"

 

每天早上7:10执行1次
10 7 * * * /usr/bin/say "该起床了"

 

每小时的第2和第5分钟执行各执行1次(逗号表示与,此时表示2分与5分的时候执行)
2,5 * * * * echo '不是第2分钟就是5分钟' >> /Users/colin/Desktop/cron.log

 

上午8点到11点的第2分钟执行各执行1次(减号表示范围,此时表示8点到11点)
2 8-11 * * * echo '上午8点到11点的第2分钟' >> /Users/colin/Desktop/cron.log

 

每隔两天的上午8点03分执行1次(反斜线除号表示间隔,这里指间隔2天)
3 8 */2  *  *  echo '隔两天就执行一波(8点03分)' >> /Users/colin/Desktop/cron.log

 

每周一上午8点到11点的第3和第15分钟各执行1次
3,15 8-11 * * 1  echo ',逗号与;-减号到' >> /Users/colin/Desktop/cron.log

 

每月1、10、22日的4 : 45各执行1次
45 4 1,10,22 * *  echo '45 4 1,10,22 * * 逗号表示and与' >> /Users/colin/Desktop/cron.log

 

每周六、周日的1 : 10各执行1次
10 1 * * 6,0 echo '分 时 日 月 周 逗号表示and' >> /Users/colin/Desktop/cron.log

 

每天18 : 00至23 : 00之间每隔30分钟执行1次
0,30 18-23 * * * echo '分 时 日 月 周 减号表示范围' >> /Users/colin/Desktop/cron.log

 

每星期六的晚上11 点(23时)执行1次
0 23 * * 6 echo '晚上11点请用23表示' >> /Users/colin/Desktop/cron.log

  

晚上11点到早上7点之间,每隔一小时执行一次
0 23-7 * * * echo '减号表示范围 23-7 ' >> /Users/colin/Desktop/cron.log

 

每隔10秒执行一次

在每分钟执行一次的基础上,使用sleep 10;sleep 20;sleep 30;sleep 40;sleep 50;sleep 60;的组合,如下所示:

* * * * * sleep 10;/usr/bin/say "又过去了10秒"
* * * * * sleep 20;/usr/bin/say "又过去了10秒"
* * * * * sleep 30;/usr/bin/say "又过去了10秒"
* * * * * sleep 40;/usr/bin/say "又过去了10秒"
* * * * * sleep 50;/usr/bin/say "又过去了10秒"
* * * * * sleep 60;/usr/bin/say "又过去了10秒" 

全部评论: 0

    我有话说: