延迟任务
- 延迟任务的发起
- 开启两个窗口,一个窗口对/mnt/进行监控
watch -n1 ls -lR /mnt/
- 另一个窗口在/mnt/下创建目录
at 16:12 ##执行时间
> rm -fr /mnt/* ##执行内容
>[ctrl]+[d] ##任务发起
命令 | 作用 |
---|---|
at -l | 查看任务队列 |
at -c 任务号 | 查看任务内容 |
at -r 任务号 | 取消任务 |
2. 当延迟任务有输出,输出会以邮件形式发送到任务发起者邮箱中
- 安装相关的服务,并且开启服务
dnf 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 退出
- at命令的控制
/etc/at.deny
at控制黑名单,此名单中的人不能执行at/etc/at.allow
此文件默认不存在,当此文件存在/etc/at.deny
不生效- 当此文件存在系统普通用户默认不能执行at,只有在名单中的人可以执行at.
定时任务
- crond 定时任务服务
systemctl status crond
查看任务是否开启(一般是一直开启的,并且开机启动)
crond 设定方式
命令设定方式: 用户级别定时任务
crontab -u root -e
设定crontab -u root -l
查看crontab -u root -r
删除/var/spool/cron/root
任务存储位置
- 设定的写法:时间 + 任务
- 分钟 小时 天 月 周 系统命令|脚本
05 17 13 06 6 rm -fr /mnt/*
在周六,6月13,17:05删除/mnt/下的所有文件
- 时间设定举例
- 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分时间段每4隔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/myr
cron设定文件.myr为文件名,文件名任意,自己设定
-
时间 用户 动作(格式)
root rm -fr /mnt/* -
/etc/下的几个目录
-
/etc/cron.daily/ ##每天任务
-
/etc/cron.hourly/ ##每小时任务
-
/etc/cron.monthly/ ##每月任务
-
/etc/cron.weekly/ ##每周执行动作
用户级别crond控制设定
vim /etc/cron.deny
cron用户名单,用法同at.deny(黑名单)vim /etc/cron.allow
白名单,若白名单存在,则黑名单不起作用,且普通用户没有权限,只有白名单内的人可以操作- 注意:定时任务中,如果有输出的话,不会显示在控制台内,也会发送到邮箱,查看方法与延迟方法中相同。