一、延时任务
(延迟任务是暂时的)
at命令
at 命令可以指定某一任务在将来的特定时间运行。
1、发起任务(指定时间)
at 20:51或者[at now+1min #(现在时间加一分钟后)] ##设置执行任务时间
touch file ##输入命令
##ctrl+D发起任务
2、基本命令
at -l ##列出延时任务(下图2为任务编号)
at -c 2 ##延时任务详细操作(2为上图任务号)
下图为任务详细操作
at -r 2 ##取消延时任务
3、用户延时任务黑名单
打开vim /etc/at.deny
添加用户student
测试:
切换为student用户
student创建延时任务失败
创建此文件时,只有添加进该文件的用户才能创建延时任务。当我们手动建立白名单时,黑名单就立刻失效,当用户同时出现在黑名单和白名单中时,生效的是白名单
vim /etc/at.allow
当任务有输出时,输出会以邮件的形式发送给at任务的发起者
echo hello ##输出hello
mail -u root ##查看超级用户邮件
mail #查看邮件
1 ##查看第一封邮件
q ##退出
> /var/spool/mail/root ##清空邮件
二、定时任务
cron 设备管理必须按计划定期重复运行的程序。后台程 crond每分钟唤醒一次 , 以运行计划的任何任务用户使用 crontab命令计划个人任务。系统管理员可以在系统范围配置文件中设置任务
1、crond.service ##当程序开启时定时任务生效
man 5 crontab #帮助
crontab -e #直接发起定时任务,以哪个用户身份登陆,就默认以哪个用户发起任务
crontab -u student -e ##指定student用户添加新定时任务 默认编辑器是vi
crontab -u(指定用户) student(所要指定的用户) -e
crontab -u student -l ##列出查看指定用户的定时任务
crontab -u student -r ##删除文件(撤销任务)
cat /var/spool/cron/student # 所有用户crontab文件存放的目录,以用户名命名
用超级用户可以成功,普通用户根本不能发起定时任务
查看/mnt目录的权限时,发现/mnt目录对其它用户不可写
我们更改mnt目录权限,
再次发起定时任务。
定时内容
查看,任务成功。
2、编辑文件的含义:
分钟 小时 天 月 周
* * * * * touch /mnt/file # 每分钟
* 10-14 * * * touch /mnt/file # 10-14点的每分钟
* 10,14 * * * touch /mnt/file # 10和14点的每分钟
*/2 10-14 * * * touch /mnt/file # 10-14点的每两分钟
*/2 08-17 1,15 * * touch /mnt/file # 每月的第一和第十五天的8-17点的每两分钟
*/2 08-17 1,15 * 3 touch /mnt/ # 每月的第一和第十五天和每周三的8-17点的每两分钟
*/2 08-17 1,15 3,5 3 touch /mnt/file # 每三和五月的第一和第十五天和每周三的8-17点的每两分钟
3、定时任务权限
黑名单存在时,黑名单里添加的用户定时任务不能发起。
黑名单:
vim /etc/cron.deny
白名单:
当白名单存在时,黑名单失效,若白名单存在且为空,则所有的用户将是黑名单
vim /etc/cron.allow
永久设定:
系统执行脚本:
[root@localhost Desktop]# ls /etc/cron # 按tab键可显示出来,它们都是cron的调度配置文件
cron.daily cron.hourly crontab cron.d cron.deny cron.monthly cron.weekly
cron.daily 是每天执行一次的任务
cron.hourly 是每个小时执行一次的任务
cron.d 是系统自动定期需要做的任务
cron.deny 文件就是用于控制不让哪些用户使用crontab的功能
cron.weekly 是每个星期执行一次的任务
cron.monthly 是每月执行一次的任务
cron.weekly 是每个星期执行一次的任务
打开
vim /etc/cron.d/westos
写入:* * * * * root touch /mnt/file{1…3}
测试查看:
监控mnt目录:
成功:
注:做完实验记得清除所有的定时任务
三、控制系统中的临时文件
系统中服务在正常运行时会产生临时文件,在系统中 /usr/lib/tmpfiles.d/ 标实服务的临时文件存放位置
systemd-tmpfiles # 创建、删除和管理临时文件的服务
打开:
vim /usr/lib/tmpfiles.d/westos.conf
写入:
d /mnt/westos 777 root root 8s
d /mnt/westos 777 root root 8s
文件类型为目录 目录的位置 目录的权限 目录的用户和所在组 文件在目录存放的时间
执行:
systemd-tmpfiles --create /use/lib/tmpfiles.d/* ## 执行命令,创建上面脚本中的/mnt/westos
测试:
touch /mnt/westos/file{1…5} #新建file1~file5
如下图监控,已建成功。
清除临时文件
systemd-tmpfiles --clean /use/lib/tmpfiles.d/* # 清除在/mnt/westos里存在时间超过设定时间8s的文件
如下图,已经清除。
rm -fr /usr/lib/tmpfiles.d/clean.conf # 做完实验记得还原环境