1.延迟任务
使用watch -n1 ls -l /mnt 进行监控
【1】发起延迟任务
at -l | 查看任务队列 |
---|---|
at -c | 查看任务内容 |
at -r | 取消任务 |
at now+1min | 1分钟以后执行 |
注意:使用at -c命令查看任务内容时,该任务应处于未执行状态
【2】当延迟任务有输出,输出会以邮件形式发送到任务发起者邮箱中
- 安装后要记得开启功能
dnf install mailx postfix
//开启功能
systemctl start postfix.service
systemctl enable postifx.service
- mail root尝试发送一下邮件,如果显示未发送成功,就先确认下自己的功能是否打开了
注意:" q"表示结束
查看邮件 | |
---|---|
mail -u root | 查看root用户的邮件 |
如果此时显示没有邮件,则需要dnf install postfix -y 命令安装后启动,在使用systemctl enable --now postfix命令启动即可
【3】at命令的控制
/etc/at.deny | at控制黑名单,此名单中的人不能执行at |
---|---|
/etc/at.allow | 此文件默认不存在 |
注意:
- 当/etc/at.allow存在,则/etc/at.deny不生效
- 当/etc/at.allow存在,系统普通用户默认不能执行at,只有在名单中的人可以
-
- 在root用户下创建文件,切换到westos用户下,此时被拒绝了
- 将westos写入白名单中,则lee不可以执行,westose可以执行
- 此时westos既在白名单又在黑名单,说明了at.allow存在时,at.deny不生效
2.定时任务
使用watch -n1 ls -l /mnt 进行监控
crond :定时任务服务
【1】设定方式
1.系统控制crontab的服务
crond.service 当程序开启时定时任务生效
2.命令的设定方式(用户级别定时任务)
- -u表示指定发起用户,-e表示去编辑他的任务
crontab -u root -e | 设定 |
---|---|
crontab -u root -l | 查看 |
crontab -u root -r | 删除 |
/var/spool/cron/root | 任务存储位置 |
3.crontab 时间表示方式
分钟 小时 天 月 周 | 系统命令/脚 |
---|---|
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分钟 |
【2】系统级别的cron(系统级别cron,只有超级用户可操作)
/etc/cron.d | 系统级别cron设定文件存放路径 |
---|---|
/etc/cron.d/westos | cron 设定文件 |
/etc/cron.daily/ | 每天任务 |
/etc/cron.hourly/ | 每小时任务 |
/etc/cron.monthly | 每月任务 |
/etc/cron.weekiy | 每周之星动作 |
vim /etc/cron.d/file
* * * * * username action
* * * * * root rm -fr /mnt/*
- crontab的黑白名单
vim /etc/cron.deny | cron 用户黑名单,用法同at.deny |
---|---|
vim /etc/cron.allow | cron白名单,用法同at.allow |
/etc/cron.deny #系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow #系统中迷人不存在,当文件出现,普通用户不能执行crontab,只有在名单中的用户可以,并且 /etc/cron.deny失效
这两个名单都不会影响/etc/cron.d目录中定时任务的发起及执行
【3】系统同中临时文件的管理方式
cd /usr/lib/tmpfiles.d/
vim westos.conf
d /mnt/westos 777 root root 5s
systemd-tmpfiles --create /usr/lib/tmpfiles.d/*
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
临时文件清理: