Linux运维-定时任务与延时任务

为什么要用定时与延时任务?

很多运维任务都是在凌晨完成的,如果运维工程师每天都是凌晨干活,那么用不了多久,运维工程师就挂掉了!所以学习定时与延时任务很有必要。

【19年秋招大疆运维工程师笔试题】

11月份每天早上6点-12点之间,每隔两个小时执行脚本httpd.sh

* 6-12/2 * 11 *  sh httpd.sh

一.定时任务

1.crond 定时任务服务

2.crond的设定方式

①命令设定方式: 用户级别定时任务

crontab -u root -e ##设定
crontab -u root -l ##查看
crontab -u root -r ##删除
/var/spool/cron/root ##任务存储位置

时间任务

分钟 小时 日 月 周系统命令|脚本
08-17 * * * * 		##每天每小时08分-17分
08-17 * * * 3,5 	##每周3和周五每小时08分-17分
08-17/2 * * * 3,5 	##每周3和周五每小时08分-17分时间段每隔2分钟
08-17/2 10 * * 3,5 	##每周3和周五10点08分-17分时间段每隔2分钟
08-17/2 10 5 * 3,5 	##每周3和周五及每月5号10点08分-17分时间段每隔2分钟
08-17/2 10 5 3 3,5 	##3月每周3和周五及3月5号10点08分-17分时间段每隔2分钟

②配置文件方式设定: 系统级别cron,只有超级用户可操作

/etc/cron.d 			##系统级别cron设定文件存放路径
vim /etc/cron.d/westos 	##cron设定文件
时间 用户动作
* * * * * root rm -fr /mnt/*
/etc/cron.daily/ 		##每天任务
/etc/cron.hourly/ 		##每小时任务
/etc/cron.monthly/ 		##每月任务
/etc/cron.weekly/ 		##每周执行动作

3.用户级别crond控制设定

vim /etc/cron.deny 		##cron用户控制黑名单,此名单中的人不能执行cron命令
vim /etc/cron.allow 	##cron白名单,此文件默认不存在
						##当此文件存在时cron.deny不生效
						##当此文件存在,系统普通用户默认不能执行cron,只有在名单中才可以

二.延时任务

1.延迟任务的发起

at 10:10
> rm -fr /mnt/* 	##执行内容
>[ctrl]+[d] 		##任务发起
at -l 				##查看任务队列
at -c 任务号			##查看任务内容
at -r 任务号			##取消任务

2.当延迟任务有输出,输出会以邮件形式发送到任务发起者邮箱中

yum install mailx postfix
systemctl start postfix
systemctl enable postifx
mail -u root 		##查看root用户的邮件
No mail for root 	##root用户没有邮件
>  /var/mail/root 	##清空root邮件
at 10:30			
>timedatectl 		##此命令有输出但不会显示到字符设备中
					##此命令输出会用邮件发送给at发起人
[root@rhel8_node1 ~]# mail -u root
Heirloom Mail version 12.5 7/5/10. Type ? for help.
"/var/mail/root": 1 message 1 new
>N 1 root Sat Feb 22 10:27 27/1226 "Output from
your job " 			##at输出邮件
& 1				    ##输入邮件编号查看
&q 					#退出

3.at命令的控制

/etc/at.deny 	##at控制黑名单,此名单中的人不能执行at
/etc/at.allow 	##此文件默认不存在
				##当此文件存在/etc/at.deny不生效
				##当此文件存在系统普通用户默认不能执行at,只有在名单中的人可以
发布了113 篇原创文章 · 获赞 132 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/chaos_oper/article/details/104454806