crontab 配置

用户定时任务配置文件 存放于 /var/spool/cron 目录下,以用户名命名。 crontab 命令其实就是通过操作这些配置文件,实现对 定时任务 的管理。

注解

注意,用户定时任务配置文件目录可能因系统而异。在 Ubuntu ,该目录是 /var/spool/cron/crontabs

格式详解

想要掌握定时任务配置,全面了解 crontab 配置文件格式是必须的。

一个典型的 crontab 用户配置如下:

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
* * * * * /usr/local/gse/agent/bin/gsectl watch

井号 ( # )开头的行是 注释 。 可以看到,例子中大部分内容都是注释。 仔细看注释,原来是在说明如何编写 crontab 配置呢!

crontab 配置中,一个有效的配置行便定义一个定时任务。 每个配置行由 6 个字段组成,描述定时任务的执行要素:

  1. 0-59
  2. 0-23
  3. 1-31
  4. 1-12
  5. 星期0-7 ( 07 均表示星期天 )
  6. 执行命令

配置字段分成两类,定义运行时间的 时间字段 (前 5 个字段均是)以及 命令字段

时间字段定义执行时间,以字段 为例:

  • 0 ,表示第 0 分钟执行;
  • 0,30 表示第 0 分以及第 30 分钟执行;
  • */5 ,表示每个整 5 分钟执行,即第 051015 ,以此类推;
  • * ,表示每分钟执行;
  • 0-30 ,表示 0-30 分钟,每分钟执行以此;

命令字段 是定时任务执行的命令定义,只要是一行合法的 shell 命令即可。

配置实例

每分钟执行脚本:

* * * * * /path/to/my/script

每小时第 3 和第 15 分钟执行脚本:

3,15 * * * * /path/to/my/script

上午 8 时到 11 时的第 315 分钟执行脚本:

3,15 8-11 * * * /path/to/my/script

每隔两天上午 8 时到 11 时的第 315 分钟执行脚本:

3,15 8-11 */2 * * /path/to/my/script

每周一上午 8 时到 11 时的第 315 分钟执行脚本:

3,15 8-11 * * 1 /path/to/my/script

每晚 21:30 执行脚本:

30 21 * * * /path/to/my/script

每月 11022 日的 4:45 执行脚本:

45 4 1,10,22 * * /path/to/my/script

每周六、周日的 1:10 执行脚本:

10 1 * * 6,0 /path/to/my/script

每天 18 时到 23 时之间,每隔 30 分钟执行脚本:

0,30 18-23 * * * /path/to/my/script

每周六 23 时执行脚本:

0 23 * * 6 /path/to/my/script

下一步

订阅更新,获取更多学习资料,请关注我们的 微信公众号

../../../_images/wechat-mp-qrcode.png

小菜学编程

微信打赏