【linux】循序渐进学运维-基础篇-crontab计划任务

大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-基础篇的第58篇文章。

前言:

计划任务在公司用的比较多,而且在面试中也经常会问到关于计划任务的问题,尤其是笔试题里面,涉及到计划任务的更多。
在之前的文章中,我们讲了一个一次性的任务叫at , 如果你对at没有印象了,可以点击下方链接进行复习:

【linux】循序渐进学运维-基础篇-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 -l
30 21 * * * tar zcvf /opt/data.tar.gz  /data/*
2. 每个月的1,10,22日的5:15重启apache
[root@ecs-c13b ~]# crontab -l
15 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

总结:

计划任务需要多练习,熟能生巧。

我是高胜寒,一个在教培行业不忘初心的人,欢迎留言与我交流。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章