怎样在 CentOS 设置定时任务 crontab
最近更新时间 2020-11-24 17:46:45
cron是一款类Unix的操作系统下的基于时间的任务管理系统。用户们可以通过 cron 在固定时间、日期、间隔下,运行定期任务(可以是命令和脚本)。cron常用于运维和管理。cron该词来源于希腊语chronos(χρόνος),原意是时间。
定时任务格式
定时任务格式如下所示,最小时间单位为1分钟,可以使用月份(jan,feb,mar,apr ...)、星期(sun,mon,tue,wed,thu,fri,sat)的英文简称表示。
# Example of job definition: # .---------------- 分钟 (0 - 59) # | .------------- 小时 (0 - 23) # | | .---------- 日期 (1 - 31) # | | | .------- 月份 (1 - 12) # | | | | .---- 星期 (0 - 6) (0表示周日) # | | | | | # * * * * * user-name command to be executed
可以使用下面的命令编辑和查看定时任务。
编辑定时任务
vi /etc/crontab
编辑定时任务
crontab -e
查看定时任务
crontab -l
删除定时任务
crontab -r
常用案例
每分钟执行一次 echo 命令。
* * * * * echo hello world
每分5分钟执行一次备份命令,使用 nohup,不打印日志。
*/5 * * * * nohup backup > /dev/null 2>&1 &
* 和 0 表示不同的意义,连接符 / 表示时间间隔,如下所示:
表示10点到11点,每分钟执行一次
* 10 * * * echo hello world
表示10:00执行一次命令
0 10 * * * echo hello world
表示10点到11点,每5分钟执行一次
*/5 10 * * * echo hello world
每天6点10分执行一次备份。
10 6 * * * backup
每月1号和15号全量备份。
0 0 1,15 * * backup_all
每天 6-10 点的第10、15、30分钟执行 Docker 中的PHP脚本。
10,15,30 6-10 * * * docker exec `docker ps | grep '9000/tcp' |awk '{print $1}'` php /path/index.php > /dev/null 2>&1
注意事项
- 可以通过 user 参数指定执行的用户。
- 命令中最好使用绝对路径。
- 可在 /var/log/cron 中查看执行日志。