linux
内置的cron
进程能帮我们实现各种各样的定时任务,例如:每周重启服务器、定时清理日志logs、定时刷数据、定时发邮件等等。
cron
搭配shell
脚本,可以执行非常复杂的指令,实现非常复杂的业务,真可谓是简单又强大。
Crontab介绍
我们经常使用的是crontab
命令是cron table
的简写,它是cron的配置文件,也可以叫它作业列表
,我们可以在以下文件夹内找到相关配置文件。
/var/spool/cron/
目录下存放的是每个用户包括root
的crontab
任务,每个任务以创建者的名字命名。/etc/crontab
这个文件负责调度各种管理和维护任务。/etc/cron.d/
这个目录用来存放任何要执行的crontab文件或脚本。- 我们还可以把脚本放在
/etc/cron.hourly
、/etc/cron.daily
、/etc/cron.weekly
、/etc/cron.monthly
目录中,让它每小时/天/星期、月执行一次。 /var/spool/mail
目录存放着各种定时任务的执行日志,方便查看脚本任务的执行情况、报错信息等等。
Crontab使用
常用命令:
crontab -e
编辑任务列表,执行命令后会进入vim
编辑模式,每一行是一条任务命令。当然也可以直接进入/var/spool/cron/
目录,编辑对应的任务配置文件。crontab -l
查看任务列表crontab -r
删除任务列表
注意: 任务配置文件做好备份,不要轻易使用crontab -r
命令。
- 例:
* * * * * /root/app/shell/run.sh
说明: 此例 每分钟
执行一次 /root/app/shell/ 目录中的 run.sh
脚本。
提示: 每个 *
之间有一个空格,*
与脚本之间也有一个空格。
crontab时间格式说明
* | 含义 | 范围 |
---|---|---|
第一个 * |
一小时当中的第几分钟 | 0-59 |
第二个 * |
一天当中的第几小时 | 0-23 |
第三个 * |
一月当中的第几天 | 1-31 |
第四个 * |
一年当中的第几月 | 1-12 |
第五个 * |
一周当中的星期几 | 0-7(0和7都是星期天) |
- crontab范例
*/5 * * * * 每五分钟执行
0 * * * * 每小时执行
0 0 * * * 每天执行
0 0 * * 0 每周执行
0 0 1 * * 每月执行
0 0 1 1 * 每年执行
0 */12 * * * 每12小时执行
3,15 * * * * xx.sh 每小时的第3和第15分钟执行
3,15 8-11 * * * xx.sh 在上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * xx.sh 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 xx.sh 每周一上午8点到11点的第3和第15分钟执行
0 23-7/1 * * * xx.sh 晚上11点到早上7点之间,每隔一小时执行
特别说明: /
前后没有空格
,其他每个字符间都有空格,切记、切记、切记。)
欢迎访问:个人博客地址