**************3.系统延迟及定时机制**************


## 1.at延迟 ##
at time
at> 动作
at> ctrl+d
at> <EOT>
at -l                          查看等待任务
atrm 任务号                    删除任务


例:设置延迟任务,在2:03时在/mnt新建文件test

wKiom1gXCMvz9vnDAAB_V_jq3S0091.png

wKioL1gXCMzihqdAAACGlY3AJ7Q029.png



当执行动作有输出时
输出结果会以邮件形式发送给任务发起人
mail                          查看邮件


例:编写脚本输出hello.xx!在2:10分时执行该脚本

wKioL1gXCdGCswFdAAB-ZKZVjyc721.png

wKioL1gXCdGSF9caAAAQSMJVmBk594.png

由此可知执行结果并不会出现在交互式界面上而是有邮件方式发送给任务执行者

wKiom1gXCdKQAI45AACkUsa2XJs290.png


at用户的黑白名单


/etc/at.deny                   黑名单,默认存在
/etc/at.allow                  白名单,默认不存在,一旦存在黑名单失效
                               并且所有普通用户能执行at的权力被禁止                                      只有在此文件中的用户可以执行at


例:在黑名单中添加student用户,测试student用户能否使用at命令

wKiom1gXCw-Av2K9AADSJ9FNzSc348.png

wKioL1gXCw3DcTcQAAAQ_iXK1Kk758.png

在白名单中添加student用户,测试student用户能否使用at命令

wKiom1gXCxSiLfhRAADDeyw-te8956.png

wKioL1gXCw_gYiwKAAAQdFaH1iM466.png

由此可知白名单一旦存在,黑名单失效


## 2.定期任务 ##

命令方式发起:

crontab -u username -e
MM hh dd mm ww
MM/2                          每隔两分钟
hh1-hh2                       hh1到hh2时间点

hh1,hh2                      hh1时间点和hh2时间点
crontab -l                    显示未进行的任务
crontab -u username -r        删除user的所有任务


例:新建定期任务每分钟执行一下输出“hello”
wKiom1gXDROR-7e6AAA19FSSmRA287.png


wKioL1gXDRLC7XIVAAAampiBPm0009.png

wKioL1gXDRGiOtNOAAAWV2pPjTc672.png


wKiom1gXDRWzZtQoAAEk4SzuYI4471.png


文件方式发起:
vim /etc/cron.d/filename
MM hh dd mm ww username action
或:
echo ‘MM hh dd mm ww username action’ >/etc/cron.d/filename


例:用上面两种方式分别发起任务在/mnt中新建5个文件

wKioL1gXDirjHgC1AAGCl3jJvxQ292.pngwKiom1gXDiKCeGafAAAiw7TArxQ081.png

cron用户的黑白名单
/etc/cron.deny                黑名单,默认存在
/etc/cron.allow               白名单,默认不存在,一旦存在黑名单失效

                              并且所有普通用户能执行crontab的权力被禁止                                 只有在此文件中的用户可以执行crontab
注:

如果以文件方式写入没有执行crontab权限用户的动作,该用户动作依旧可以执行,因为该用户执行的动作不是crontab,动作依旧可以被执行


## 3.系统临时文件管理 ##
vim /usr/lib/tmpfiles.d/*.conf

type filename perm user group time

例:d /mnt/westos 1777 root root 5
指这个目录里创建的文件最短会存在5s
systemd-tmpfiles --create /usr/lib/tmpfiles.d/*
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*


wKioL1gXD2qwHz3NAAELzTmYFiI621.pngwKiom1gXDirCPVoxAAAdjp-kXP8319.png