Crontab命令及Crontab语法

引言:Linux Crontab命令及Crontab语法

Linux命令crontab

语法

crontab用来执行定时任务,或者说是制定日程的

crontab 的参数:

  • -u user :设定指定user的时程表
  • -l :列出目前的所有时程表
  • -r:删除目前的的时程表

cron表达式(即日程时间格式):从左到右分别为:分钟(0-59)、小时(0-23)、天(1-31)、月(1-12)、星期(0-6)

1
2
3
4
5
6
7
8
9
f1   f2   f3   f4   f5
* * * * *
- - - - -
| | | | |
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
| | | +---------- 月份 (1 - 12)
| | +--------------- 一个月中的第几天 (1 - 31)
| +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)

各种符号表示的意思:

  • *:表示每的意思;例如f1为*就表示每分钟,f2为*就表示每小时
  • -:表示从多少到多少均执行;例如f2为0-10就表示凌晨0点到10点都要执行
  • /:表示每隔多久执行一次;例如f2为*/2每隔2个小时执行一次
  • ,:表示准确的时间执行;例如f2为2,3,4表示2点、3点、4点分别执行一次

例子Demo

注意:命令crontab执行的是一个文件

1、每天晚上24点关机

1
0 0 * * * shutdown now

2、在 12 月内, 每天的早上 6 点到 12 点,每隔 3 个小时 0 分钟执行一次/usr/bin/backup

1
0 6-12/3 * 12 * /usr/bin/backup

3、每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分….执行 echo "haha"

1
20 0-23/2 * * * echo "haha" 

参考资料

  1. 菜鸟教程