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点之间,每隔一小时执行
特别说明: /前后没有空格,其他每个字符间都有空格,切记、切记、切记。)
欢迎访问:个人博客地址