通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。

1. 命令参数

  • -u user:用来设定某个用户的crontab服务;
  • file:file是命令文件的名字,表示将file做为crontab的任务列表文件并载入crontab。如果在命令行中没有指定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将它们载入crontab。
  • -e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
  • -l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
  • -r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
  • -i:在删除用户的crontab文件时给确认提示。

2. 命令格式

1
分 时 日 月 星期 要运行的命令
  • 第1列分钟0~59
  • 第2列小时0~23(0表示子夜)
  • 第3列日1~31
  • 第4列月1~12
  • 第5列星期0~7(0和7表示星期天)
  • 第6列要运行的命令

3. 举例

1
2
#每分钟执行一次命令
* * * * * myCommand
1
2
#在上午8点到11点的第3和第15分钟执行
3,15 8-11 * * * myCommand
1
2
#每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * myCommand

4. 特殊触发条件

条件 意义 等同写法
@reboot 启动时执行一次
@yearly 每年执行一次 0 0 1 1 *
@annually @yearly 0 0 1 1 *
@monthly 每月执行一次 0 0 1 * *
@weekly 每周执行一次 0 0 * * 0
@daily 每天执行一次 0 0 * * *
@midnight @daily 0 0 * * *
@hourly 每小时执行一次 0 * * * *