linux 延迟任务和定时任务

延迟任务

知识点
1.延迟命令at

at 10:10
>rm -fr /mnt/*						#任务内容
>[ctrl]+[d]							#任务发起

at -l								#查看任务队列
at -c 任务号							#查看任务内容
at -r 任务号							#取消任务

注意: 当延迟任务有输出时,输出会以邮件形式发送到任务发起者的邮箱中。
比如:
at 10:30
timedatectl
此命令有输出,但不会显示到字符设备中,输出会用邮件发送给at发起人。

1.yum install mailx 
2.yum install postfix
3.systemctl start postfix
4.systemctl enable postfix
5.mail								#查看邮件
mail -u root 						#查看root用户的邮件
>N 1  								#输出邮件1
& 1									#查看邮件1
& q									#退出
6.>/var/spool/mail/root				#清空用户root邮件

2.at命令的控制
(1)/etc/at.deny:at控制黑名单,此名单中的人不能执行at。
(2)/etc/at.allow:此文件默认不存在;当此文件存在时/etc/at.deny不生效;当此文件存在时,系统普通用户默认不能执行at,只有在名单中的人才可以。
实验:命令展示
1.at命令的效果
在这里插入图片描述
在这里插入图片描述
可以看到任务内容(最后几行)
在这里插入图片描述
消失时记录date(存在误差),发现/mnt/下文件被清空。
在这里插入图片描述
2.at命令的参数
在这里插入图片描述
3.发送邮件
(1)安装邮箱客户端mailx和邮件传输代理(MTA)postfix传送邮件
在这里插入图片描述
在这里插入图片描述
(2)开启邮件服务postfix
在这里插入图片描述
(3)发送邮件
mail root:给用户root发送邮件
点(.):表示输入结束
& 1:查看邮件1
& q:退出
在这里插入图片描述
在这里插入图片描述
(4)查看并清理邮件
在这里插入图片描述
4.当延迟任务有输出时
(1)先查看timedatectl延迟命令输出
输出不会显示到字符设备中
在这里插入图片描述
(2)检查timedatectl延迟命令是否以邮件形式发出
发现这个延迟命令会以邮件形式发送给at命令发起人,且邮件内容为这个延迟命令的输出。
在这里插入图片描述
在这里插入图片描述
5.at命令的控制
(1)未添加lll用户到/etc/at.deny之前
at now+1min:一分钟之后执行延迟命令rm -fr /mnt/*
rm -fr /mnt/*
此时用户lll和用户yyy均可执行at命令
在这里插入图片描述
(2)将用户lll放入/etc/at.deny中
在这里插入图片描述
在这里插入图片描述
发现用户lll不能执行at命令,而用户yyy仍可以执行at命令。
在这里插入图片描述
(3)进入/etc/目录,发现只有/etc/at.deny文件,/etc/at.allow文件默认不存在。
在这里插入图片描述
(4)将用户lll同样放入/etc/at.allow文件中
在这里插入图片描述
在这里插入图片描述
发现当/etc/at.allow文件存在时,/etc/at.deny默认不生效。
在这里插入图片描述
(5)检查用户yyy能否执行at命令
由于用户yyy没有在/etc/at.allow文件中,所以用户yyy不能执行at命令。
在这里插入图片描述

定时任务

知识点
定时任务服务: crond
定时任务存储位置: /var/spool/cron/用户名
设定方式:
1.用户级别定时任务

1.crontab -u 用户名 -e				#设定定时任务
2.crontab -u 用户名 -l				#查看定时任务
3.crontab -u 用户名 -r				#删除定时任务

设定方法:
✳:表示每天、月…

分钟 小时 天 月 周 系统命令或脚本含义
08-17 ✳ ✳ ✳ ✳指定每小时的08-17分钟
08-17 ✳ ✳ ✳ 3,5指定每周三和周五每小时的08-17分钟
08-17/2 ✳ ✳ ✳ 3,5指定每周三和周五每小时的08-17分钟时间段每隔两分钟
08-17/2 10 ✳ ✳ 3,5指定每周三和周五10点的08-17分钟时间段每隔两分钟
08-17/2 10 5 ✳ 3,5指定每周三和周五及每月5号10点的08-17分钟时间段每隔两分钟
08-17/2 10 5 3 3,5指定3月每周三和周五以及3月5号10点的08-17分钟时间段每隔两分钟

crontab控制设置:
/etc/cron.deny:cron用户黑名单(用法同at.deny)
/etc/cron.allow:cron用户白名单(用法同at.allow)
注意: 当定时任务有输出时,像at命令一样,crontab也会向命令发起人发送邮件。
2.系统级别定时任务
只有超级用户可设定
(1)文件存放路径: /etc/cron.d/文件名称(任意)
例如:/etc/cron.d/redhat
这种方式是用户自定义方式
设定方法:
| 分钟 小时 天 月 周 | 用户 | 动作 |
(2)其他几个文件:
/etc/cron.daily:每天任务
/etc/cron.hourly:每小时任务
/etc/cron.monthly:每月任务
/etc/cron.weekly:每周任务
实验
1.crontab -e
(1)在/mnt/下新建文件,同时新建bash对/mnt/下文件进行监控。
在这里插入图片描述
在这里插入图片描述
(2)设置crontab
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)发现到指定时间后,rm -fr /mnt/*命令被执行。
在这里插入图片描述
2.crontab -r
(1)设定定时任务
在这里插入图片描述
在这里插入图片描述
(2)取消定时任务
发现设定的定时任务rm -fr /mnt/*不会执行
在这里插入图片描述
3.crontab发送邮件
(1)编辑timedatectl定时命令
在这里插入图片描述
在这里插入图片描述
(2)检查邮件
发现timedatectl定时命令并未显示到字符设备上,而是以邮件形式发送给crontab命令发起人。
在这里插入图片描述
在这里插入图片描述
4.crontab控制设置
(1)在修改/etc/cron.deny之前
发现用户lll和用户yyy均能使用crontab
在这里插入图片描述
(2)添加用户lll到/etc/cron.deny中
在这里插入图片描述
在这里插入图片描述
(3)检查用户lll能否使用crontab
发现用户lll不能使用crontab,而用户yyy可以使用crontab。
在这里插入图片描述
(4)检查文件/etc/cron.allow是否存在
/etc/cron.allow不存在
在这里插入图片描述
(5)添加用户lll到/etc/cron.allow中
在这里插入图片描述
在这里插入图片描述
(6)检查用户lll能否使用crontab
发现用户lll可以使用crontab,即/etc/cron.deny文件失效。
在这里插入图片描述
(7)检查用户yyy能否使用crontab
用户yyy不能使用crontab
在这里插入图片描述
5./etc/cron.d/redhat设定
(1)编辑/etc/cron.d/redhat文件
在这里插入图片描述
在这里插入图片描述
(2)检查/mnt/下文件
发现过整分钟后,/mnt/下所有文件被删除。
在这里插入图片描述
6./etc/cron.文件
(1)查看/etc/cron.开头文件
在这里插入图片描述
(2)例如进入/etc/cron.hourly目录编辑clean_mnt本
注意0anacron是检测crontab是否漏执行(比如说执行crontab -u xxx -e时系统是关着的,就会出现漏执行情况)的一个工具,当检测到漏执行时,0anacron就会执行漏执行的任务。
在这里插入图片描述
在这里插入图片描述
注意要给clean_mnt这个脚本执行权限,这样到整点的时候就会执行这个脚本,清空/mnt/下所有文件。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值