linux系统中定时任务和延时任务

一、系统延时任务

1.at命令
[[email protected] ~]# at 21:15 ##设定任务执行时间为21:15
at> rm -fr /mnt/* ##任务动作
at> << ctrl + d ##用ctrl + d发起任务
linux系统中定时任务和延时任务
linux系统中定时任务和延时任务
[[email protected] ~]# at now+1min ##延时1分钟
at> touch /mnt/al{1…5} ##任务动作
at> << ctrl + d ##用ctrl + d发起任务
linux系统中定时任务和延时任务

at -l ##查看任务列表
at -c 任务号 ##查看任务内容
at -r 任务号 ##取消任务执行

linux系统中定时任务和延时任务
linux系统中定时任务和延时任务
注意:
当任务有输出时,输出会以邮件的形式发送给该at任务的发起者

mail -u root ##查看超级用户邮件
mail的用法
2 ##查看第二封邮件
q ##退出mail
> /var/spool/mail/root ##清空root邮件

at创建延时任务的黑白名单
/etc/at.deny ##系统中默认存在,在此文件中出现的用户不能执行at
/etc/at.allow ##系统中默认不存在,当文件出现,/etc/at.deny失效,普通用户不能执行at命令,只有名单中的用户可以执行at
linux系统中定时任务和延时任务
linux系统中定时任务和延时任务
linux系统中定时任务和延时任务

二、系统定时任务

1.crontab 时间表示方式
*** * * * * ##每分钟
*/2 * * * * ##每隔两分钟
*/2 09-17 * * * ##每天的9点到17点,每隔两分钟
*/2 */2 * * * ##每隔两小时,每两分钟
/2 09-17 3,5 1 5 ##1月的3号和5号,每周5,9点到17点每两分钟
/2 09-17 * * 5 ##每周5的9点到17点,每隔两分钟

2.系统控制crontab的服务
crond.service ##当程序开启时定时任务生效
systemctl status crond.service
linux系统中定时任务和延时任务

3.crontab命令
crontab -e -u 用户名 ##编写定时任务,文件保存在/var/spool/cron/用户名 下,不加-u 默认为命令行用户,本命令相当于编写/var/spool/cron/用户名文件,解决普通用户不能进入该目录的问题
crontab -l -u 用户名 ##查看指定用户文件内容
crontab -r -u 用户名 ##删除指定用户文件
linux系统中定时任务和延时任务
4.文件方式设定定时任务
vim /etc/cron.d/file ##名字任意,本文件只能由root用户编写,不受黑白名单影响

书写格式
执行时间 * * * * *
执行用户 root
任务动作rm -fr /mnt/*

5.crontab的黑白名单(和at的黑白名单用法类似)
/etc/cron.deny ##系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow ##系统中默认不存在,当文件出现,/etc/cron.deny文件失效,普通用户不能执行crontab,只有在名单中的用户可以
##这两个名单都不会影响/etc/cron.d/目录中定时任务的发起和执行
linux系统中定时任务和延时任务
linux系统中定时任务和延时任务

三、系统中临时文件的管理方式

vim /usr/lib/tmpfiles.d/test.conf ##名字自己设定

该文件的编写格式
d /mnt/wop 1777 root root 8s ##8s内不能被清除
linux系统中定时任务和延时任务
systemd-tmpfiles --create /usr/lib/tmpfiles.d/wop.conf ##让该文件生效
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/wop.conf ##清除已超过保护时间的命令