Linux强大的定时任务-Crontab


字数:722 阅读时长:2分钟 阅读:85

linux内置的cron进程能帮我们实现各种各样的定时任务,例如:每周重启服务器、定时清理日志logs、定时刷数据、定时发邮件等等。
cron搭配shell脚本,可以执行非常复杂的指令,实现非常复杂的业务,真可谓是简单又强大。

Linux Crontab

Crontab介绍

我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表,我们可以在以下文件夹内找到相关配置文件。

  • /var/spool/cron/ 目录下存放的是每个用户包括rootcrontab任务,每个任务以创建者的名字命名。
  • /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命令。

  • 例:
1
* * * * * /root/app/shell/run.sh 

说明: 此例 每分钟 执行一次 /root/app/shell/ 目录中的 run.sh 脚本。

提示: 每个 * 之间有一个空格,* 与脚本之间也有一个空格。

crontab时间格式说明

*含义范围
第一个 *一小时当中的第几分钟0-59
第二个 *一天当中的第几小时0-23
第三个 *一月当中的第几天1-31
第四个 *一年当中的第几月1-12
第五个 *一周当中的星期几0-7(0和7都是星期天)
  • crontab范例
1
2
3
4
5
6
7
8
9
10
11
12
*/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点之间,每隔一小时执行

特别说明: /前后没有空格,其他每个字符间都有空格,切记、切记、切记。)


欢迎访问:个人博客地址

本文作者: Tiven
发布时间: 2021-10-24
最后更新: 2023-07-17
本文标题: Linux强大的定时任务-Crontab
本文链接: https://www.tiven.cn/p/e5a27c6c/
版权声明: 本作品采用 CC BY-NC-SA 4.0 许可协议进行许可。转载请注明出处!
欢迎留言,提问 ^_^
个人邮箱: tw.email@qq.com
notification icon
博客有更新,将会发送通知给您!