作者:Linux猿
简介:CSDN博客专家,华为云享专家,Linux、C/C++、云计算、物联网、面试、刷题、算法尽管咨询我,关注我,有问题私聊!
欢迎小伙伴们点赞、收藏⭐、留言
本篇文章主要介绍在 Linux 环境下如何设置定时任务。
本文使用 CentOS 7.9 进行实验,如下所示。
[node@k8s-master 00]$ cat /etc/centos-release
CentOS Linux release 7.9.2009 (Core)
[node@k8s-master 00]$
(1)设置定时任务需要有 crontab 命令(包含在 cronie-1.4.11-25 包里);
(2)执行 crontab -e 命令添加定时任务;
(3)保存退出。
执行 crontab -e 命令后,添加定时任务的规则如下。
# 定时任务编写规则:
.---------------- minute (0 - 59)
| .------------- hour (0 - 23)
| | .---------- day of month (1 - 31)
| | | .------- month (1 - 12) OR jan,feb,mar,apr ...
| | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
| | | | |
* * * * * 用户名(可省略) 执行的命令
f1 f2 f3 f4 f5
其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。后面是用户(省略默认是当前用户)和执行的命令。
(1)当 f1 为 * 时表示每分钟都要执行,f2 为 * 时表示每小时都要执行程序,其余以此类推;
(2)当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余以此类推;
(3)当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余以此类推;
(4)当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余以此类推。
执行命令 crontab -e 添加定时任务,如下所示。
*/5 * * * * /bin/bash /home/node/crontab/test.sh
上述任务表示:每 5 分钟执行命令 /bin/bash /home/node/crontab/test.sh。
更多设置实例如下所示。
* * * * * /bin/bash /home/node/crontab/test.sh # 每分钟执行一次
0 * * * * /bin/bash /home/node/crontab/test.sh # 每小时执行一次
0 0 * * * /bin/bash /home/node/crontab/test.sh # 每天执行一次
0 0 1 * * /bin/bash /home/node/crontab/test.sh # 每月执行一次
0 0 1 1 * /bin/bash /home/node/crontab/test.sh # 每年 1月1日 执行一次
1 * * * * /bin/bash /home/node/crontab/test.sh # 每小时的第一分钟执行一次
可以通过这个网站验证自己写的规则是否正确crontab 规则验证。
参考链接:
Linux crontab 命令 | 菜鸟教程
crontab执行时间计算 - 在线工具
感觉有帮助记得「一键三连」支持下哦!有问题可在评论区留言,感谢大家的一路支持!猿哥将持续输出「优质文章」回馈大家!