Linux系统定时任务及延迟任务
一、系统延时任务at
1、at的基本用法
at -l ##查看任务列表
at -c 任务号 ##查看任务内容
at -r 任务号 ##取消任务执行
at now+1min ##延时1分钟
<Ctrl>+<D>
:发起任务
任务执行完毕,任务号会自动消失
2、有输出任务——邮件
- 当任务有输出时,输出会以邮件的型是发送给at任务的发起者
- 邮件存放地址:
/var/spool/mail
dnf install postfix mailx -y ##安装邮件软件
systemctl enable --now postfix ##开启邮件服务
mail -u root ##查看超级用户邮件
> /var/spool/mail/root ##清空邮件
二、at任务的黑白名单
- 系统默认所有用户都可以使用at
1、at黑名单:
/etc/at.deny
:系统中默认存在,在此文件中出现的用户不能执行at
将root用户加入黑名单后,root用户仍可以正常使用at
2、at白名单:
/etc/at.allow
:系统中默认不存在,当文件出现,普通用户不能执行at,只有在名单中的用户可以,并且/etc/at.deny
失效
三、系统定时任务crontab
- 任务保存文件:
/var/spool/cron/username
- 系统控制crontab的服务:
crond.service
,当服务开启时定时任务生效
1、crontab 时间表示方式
使用man 5 crontab
查询时间表示
2、crontab命令
任务保存位置:/var/spool/cron/root
任务删除后文件会自动消失
crontab -u root -e ##创建定时任务
crontab -u root -l ##查看定时任务
crontab -u root -r ##删除定时任务
3、有输出的定时任务——邮件
- 邮件存放地址:
/var/spool/mail
(1)产生输出结果:每分钟都会发送一封邮件
(2)避免一直发送邮件
1>将邮件倒入垃圾箱:
* * * * * echo hello &> /dev/null
2>编辑配置文件,不让crontab发送文件:
vim /etc/sysconfig/crond
systemctl restart crond.service #重启crond服务
四、系统级别的cron
- 以文件方式设定定时任务
vim /etc/cron.d/file
五、crontab的黑白名单
- 系统默认所有用户都可以使用crontab
- 用法与at类似,多一个系统级别的crontab
1、黑名单:
/etc/cron.deny
:系统中默认存在,在此文件中出现的用户不能执行crontab
2、白名单:
/etc/cron.allow
:系统中默认不存在,当文件出现,普通用户不能执行crontab,只有在名单中的用户可以,并且/etc/cron.deny
失效
3、这两个名单都不会影响/etc/cron.d/
目录中定时任务的发起及执行
六、系统中临时文件的管理方式
- 临时文件存放目录:
/usr/lib/tmpfiles.d/
- 临时文件只能用
systemd-tmpfiles
去清理,用rm -fr
会错误删除一些正在使用的文件
cd /usr/lib/tmpfiles.d/ ##切换到临时文件目录
vim sk.conf ##编写临时文件
systemd-tmpfiles --help ##查看用法帮助
systemd-tmpfiles --create /usr/lib/tmpfiles.d/sk.conf ##创建临时文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/sk.conf ##删除临时文件,需文件保留设定时间完毕
cat sk.conf
d /mnt/sk 1777 root root 10s
## 'd':目录,‘1777’:权限,‘root’:用户及用户组,‘10s’:临时文件保留时间