1.系统延时任务在虚拟机中进行操作
1.1两种设定方式
[root@localhost ~]# at 21:45 ##设定任务执行时间
at> touch /root/Desktop/file{1..5} ##任务动作
at> <EOF> ##用ctrl+D发起任务
[root@localhost ~]# at now+1min ##延时1分钟
at> rm -fr /root/Desktop/file{1..5} ##查看任务内容
at> <EOF> ##用ctrl+D发起任务
at -l ##查看任务列表
at -c ##查看任务内容
at -r ##取消任务执行
mail -u root ##查看超级用户邮件
1 ##查看第一封邮件
q ##退出
> /var/spool/mail/root ##清空邮件
mail -u root 只有在任务有输出时,输出会以邮件的形式发给at任务的发起者
1.2 at任务的黑白名单
/etc/at.deny ##系统中会默认存在,在此文件中出现的用户不能执行at;但默认情况下,此文件中为空白,所以默认情况下为所有用户都可以执行at
/etc/at.allow ##系统中默认不存在,当文件出现,只有在白名单中的用户(超级用户除外)不能执行at命令,并且当/etc/at.allow存在时,/etc/at.deny失效;
################################################################
################################################################
################################################################
2.系统定时任务
2.1 crontab 时间表示形式 可以使用man 5 contab查看相关命令
分钟 小时 天 月 周
* * * * * * ##每分钟执行
* /2 * * * * ##每两分钟执行一次
*/2 09-17 * * * ##早上九点-晚上5点每两分钟执行
* /2 * /2 * * * ##每隔2小时每两分钟执行
* /2 09-17 3,5 1 5 ##1月3号和1月5号早上9点到晚上5点以及每周五点执行一次
* /2 09-17 * * 5 ##每周周五早上9点到晚上5点
2.2 系统控制contab的服务
crond.service ##当程序开启时定时任务生效
systemctl status crond.service ##查看定时任务的状态
systemctl start crond.service ##开启定时任务
systemctl stop crond.service ##关闭定时任务
systemctl status crond.service ##查看定时任务的状态
2.3系统控制crontab的服务
crontab -e ##打开文件后,输入后退出保存即可
crontab ##回车后直接在下面输入任务后ctrl+d任务开始执行
crontab -l -u root ##查看当前任务列表
cd /var/spool/cron/ -> ls ##查看当前任务
crontab -r -u root ##删除所有任务
crontab -e ##可以删除指定的任务
crontab -e ##打开文件后,输入后退出保存即可
crontab -l -u root ##查看当前任务列表
cd /var/spool/cron/ -> ls ##查看当前任务
2.4文件方式设定定时任务
vim /etc/cron.d/file ##打开文件任务,相比于at的任务编写文件多了指定用户这一项
cd /etc/cron.daily -> ls ##查看每天执行的任务
/etc/cron.hourly -> ls ##查看每小时执行的任务
/etc/cron.monthly -> ls ##查看每个月执行的任务
3.crontab的黑白名单
/etc/cron.deny ##系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow ##系统中默认不存在,当文件出现,普通用户不能执行crontab
只有在白名单中的用户可以执行,并且/etc/cron.deny失效
黑名单
白名单
这两个名单都不会影响/etc/cron.d/目录中定时任务的发起和执行
4.系统中临时文件的管理方式
cd /usr/lib/tmpfiles.d/ ->ls
vim westos.conf ##按照上述目录下的文件tmp.conf为模板,写入:
d /mnt/westos 777 root root 8s
存在多长时间的文件会被清理取决于westos.conf中设定的时间
systemd-tmpfiles --create /usr/lib/tmpfiles.d/*
systemd-tmpfiles --clean /usr/lib/tmpfiles.f/*
操作:再打开一个shell进行监控
watch -n 1 "ls -Rl /mnt/"
在另一个shell中执行,看监控shell中的效果
cd /usr/lib/tmpfiles.d/
vim westos.conf ##写入以下文本
/mnt/westos 777 root root 8s
systemd-tmpfiles --create /usr/lib/tmpfiles.d/westos.conf'
touch /mnt/westos/file
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/westos.conf ##清理刚刚创建的file;该命令执行时,file存在的时间必须达到设定的清理时间