Linux 操作系统16:延时任务和定时任务

1.系统延时任务

系统的延时任务是通过at命令是实现的,负责这个延时任务的服务是atd服务,通常这个服务是默认开启的
at time ##表示在某一时刻发起任务

at  3:51  						##设定任务执行时间
at> rm -rf /mnt/www/*           ##任务动作
at> <EOT>      << ctrl+d        ##用ctrl+d发起任务

at -l ##查看任务列表
在这里插入图片描述at -c 任务号 ##查看任务内容
at -r 任务号 ##取消任务执行
在这里插入图片描述测试:
1.先在/mnt/下创建文件,使用监控命令进行监控
2.执行命令,观察变化。
注意:
1.at now+1min ##表示从现在开始1分钟后
2.当任务有输出时,输出会以邮件的形式发送给at任务的发起者

mail -u root     ##查看超级用户邮件
1                ##查看第一封邮件
q                ##退出

> /var/spool/mail/root ##清空邮件

2.at任务的黑白名单

在这里插入图片描述在这里插入图片描述/etc/at.deny
系统中默认存在,在此文件中出现的用户不能执行at
在这里插入图片描述在这里插入图片描述/etc/at.allow
系统中默认不存在,当文件出现,普通用户不能执行at
只有在名单中的用户可以,并且/etc/at.deny失效

注意:延时任务只能执行一次,对任务进行一次调度,但是如果我们想循环调度某个工作,就必须采用定时任务
在这里插入图片描述在这里插入图片描述

3.系统的定时任务

定时任务:延时任务只能执行一次,对任务进行一次调度,但是如果我们想循环调度某个工作,就必须采用定时任务

3.1crontab 时间表示方式

* * * * *             	##每分钟(分别代表分、时、日、月、周)
*/2 * * * *         	##每两分钟
*/2 09-17 * * *  		##早上的9点到下午5点的每两分钟
*/2 */2 * * *      		##每隔2小时每两分钟
*/2 09-17 3,5 1 5		##3月和5月的每周一和周五
*/2 09-17 * * 5   		##每周周五的早上9点到下午5点

3.2系统控制crontab的服务

crond.service ##当程序开启时定时任务生效
systemctl status crond.service
在这里插入图片描述

3.3crontab

crontab -e -u root ##以超级用户身份编辑任务
在这里插入图片描述在这里插入图片描述crontab -l -u root ##超级用户身份查看定时任务内容
在这里插入图片描述crontab -r -u root ##超级用户身份取消定时任务
注意:/var/spool/cron/root 系统定时文件存放,crontab是用户级别的定时任务
在这里插入图片描述
在这里插入图片描述

3.4文件方式设定定时任务(系统级的定时任务)

vim /etc/cron.d/file
* * * * *        username       action
* * * * *          root        rm -rf /mnt/*

在这里插入图片描述在这里插入图片描述

3.5crontab的黑白名单

/etc/cron.deny
系统中默认存在,在此文件中出现的用户不能执行crontab


测试:
1.验证存在用户是否可以执行定时任务
在这里插入图片描述2.在黑名单中添加westos用户,验证westos用户是否可以执行定时任务
在这里插入图片描述在这里插入图片描述/etc/cron.allow
系统中默认不存在,当文件出现,普通用户不能执行crontab
只有在这个名单中的用户可以,并且/etc/at.deny失效

注意:这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

4.系统中临时文件的管理方式

1.临时文件概念:

清理定时任务的文件就是临时文件

2.作用: 为了防止系统中的资源被浪费,系统中有清理临时任务的机制,将一些滞留时间超过规定时间的文件清理
3.存放位置:== /usr/lib/tmpfiles.d/==

cd /usr/lib/tmpfiles.d/
vim westos.conf  ##编辑配置文件
d /mnt/westos  1777  root root 8s

注释:

d               表示文件类型是目录
/mnt/westos 	表示要执行的文件
1777           	表示对文件授予权限为满权限
两个root      	表示以root用户root组的身份去执行
8s              表示在/mnt/westos下创建的文件生命周期超过8s才可以被清理

systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##执行临时文件配置
touch /mnt/westos/tmpwestos1
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清除满生命周期的文件

测试:
1.建立自己用来清除临时文件的配置文件
在这里插入图片描述2.重新打开一个shell,采用监控命令进行监控,确保监控环境纯净
在这里插入图片描述在这里插入图片描述3.执行临时文件配置,则/mnt下会创建一个westos目录,且权限为1777
在这里插入图片描述4.在/mnt/westos下创建一个名为tmpwestos1的文件
在这里插入图片描述5.执行命令,清除满生命周期的文件
在这里插入图片描述

发布了39 篇原创文章 · 获赞 4 · 访问量 712

猜你喜欢

转载自blog.csdn.net/weixin_44718794/article/details/103414771