首页 > 代码库 > crontab 例行任务
crontab 例行任务
1、crontab 介绍
crontab是Linux用来定时执行任务的命令。
2、命令格式
crontab [-u user] file
crontab [-u user] [-i] {-e | -l | -r }
-e:编辑用户的 crontab 文件(针对用户)
-l:列出用户的 crontab 文件
-r:删除用户的 crontab 文件
-i:删除用户的 crontab 文件前给出提示
-u:设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数。如,root 用户要删除用户 charles 的 cron 设置:crontab -u charles -r
每个用户使用 crontab 命令创建工作调度之后,该项工作会被记录在 /varspool/cron/ 目录下,如用户 charles 使用 crontab 之后,他的工作会被记录到 /var/spool/cron/charles 中去。
【注意】
- crontab -r 会删除crontab中所有的任务,如果只想删除一项任务的话,使用crontab -e 去编辑。
- 周与日、月不可同时并存,不能指定“几月几日且星期几”的模式。
3、基本格式
minute | hour | day of month | month | day of week | command |
0 ~ 59 | 0 ~ 23 | 1 ~ 31 | 1 ~ 12 | 0 ~ 7 | 要执行的命令 |
- 周的数字为 0 或 7 时,都代表“周日”的意思。
- *(星号) 代表所有可用值。
- ,(逗号) 用来分隔时段,如:1,3,4,6表示这四个指定的整数。
- -(减号) 代表一段时间范围,如:8-12表示8,9,10,11,12.
- /(斜线) 指定间隔值,(minute位置)*/5 表示每隔5分钟的意思。
- 以“#”开头为注释行,不会被执行。
4、系统性的例行任务
针对系统性的例行任务,编辑 /etc/crontab 即可。cron 服务的最低检测限制是“分钟”,所以 cron 会每分钟去读取 /etc/crontab 文件中的内容。
文件内容格式:
minute |
hour |
dayofmonth |
month |
dayofweek |
user |
command |
0 ~ 59 | 0 ~ 23 | 1 ~ 31 | 1 ~ 12 | 0 ~ 7 | 执行者 | 要执行的命令 |
可以看到 /etc/crontab 中的内容比 crontab -e 不同,多了一个执行者,用户自己的 crontab 并不需要指定执行者,但是系统级的 /etc/crontab 需要指定,系统默认的例行性工作是以 root 身份运行的。
5、特殊用法
关键词 | 意义 | 等同于 |
@reboot | 每次重启时执行 | |
@yearly | 每年第一分钟执行 | "0 0 1 1 *" |
@annually | 同 @yearly | |
@monthly | 每月第一分钟执行 | "0 0 1 * *" |
@weekly | 每周第一分钟执行 | "0 0 * * 0" |
@daily | 每天第一分钟执行 | "0 0 * * *" |
@midnight | 同 @daily | |
@hourly | 每小时第一分钟执行 | "0 * * * *" |
6、crontab服务的启动与关闭
service crond start //启动 cron 服务
service crond stop //关闭 cron 服务
service crond restart //重启 cron 服务
service crond reload //重新载入配置
crontab 例行任务