大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-基础篇的第58篇文章。
文章目录
前言:
计划任务在公司用的比较多,而且在面试中也经常会问到关于计划任务的问题,尤其是笔试题里面,涉及到计划任务的更多。
在之前的文章中,我们讲了一个一次性的任务叫at , 如果你对at没有印象了,可以点击下方链接进行复习:
crontab定时任务的作用
crond命令定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作,只要提前写好规则,后期无需人工干预,自动执行。
比如沃恩可以用计划任务更新数据库,做日志切割,定时执行一些任务脚本,比如巡检,收集系统状态等等。
crontab的参数
参数 | 作用 |
---|---|
u | 指定用户 |
l | 列出当前用户下的cron服务的详细内容 |
r | 删除计划任务 |
e | 编辑计划任务 |
crontab -e 编辑时的语法
cat /etc/crontab
上图展示的是: 每个*的取值范围,比如第一个星号为分钟, 取值为0-59
从左往右分别为:分时日月周
周的取值为 0-7, 周日用0 或者7 来表示
在crontab 里一行代表一个任务,特殊符号的含义如下:
特殊符号 | 作用 | 举例 |
---|---|---|
* | 代表取值范围内的任意数字 | * * * * 7 |
/ | 指定时间的间隔频率 | */10 |
- | 代表从某个时间到某个时间 | 9-16 |
, | 用逗号隔开指定一个列表范围 | 1,2,3,8 |
crontab 使用举例
crontab -e 用来编辑计划任务 contab -l 查看计划任务
1. 每天21:30备份数据
[root@ecs-c13b ~]# crontab -e[root@ecs-c13b ~]# crontab -l30 21 * * * tar zcvf /opt/data.tar.gz /data/*
2. 每个月的1,10,22日的5:15重启apache
[root@ecs-c13b ~]# crontab -l15 5 1,10.22 * * /etc/init.d/httpd restart
3. 每天的23点到凌晨2点 这个时间段 每14分钟执行一次 脚本
[root@ecs-c13b ~]# crontab -l*/14 0-2,23 * * * /srv/opstool/rml_third.sh
4 .每月的5日到10日的4:10 重启httpd
10 4 5-10 * * /etc/init.d/httpd restart
5 .每月的5日到10日的每个小时 重启httpd
0 */1 5-10 * * /etc/init.d/httpd restart
总结:
计划任务需要多练习,熟能生巧。
我是高胜寒,一个在教培行业不忘初心的人,欢迎留言与我交流。