1、系统延时任务(一次性)
# at 12:15 设定任务执行时间
at> rm -rf /mnt/* 任务动作
at> <EOT> 用crtl+D发起任务(ctrl+C结束任务)
# at now+1min 延时1分钟
# at now+1day 延时1天
# at -l 查看任务列表
# at -c 任务号 查看任务内容
# at -r 任务号 取消任务执行
注意:
当任务有输出时,输出会以邮件的形式发送给at任务的发起者
mail -u root 查看超级用户邮件
1 查看第一封邮件
q 退出
> /var/spool/mail/root 清空邮件
2、at任务的黑白名单
/etc/at.deny 系统中默认存在,在此文件中出现的用户不能执行at
/etc/at.allow 系统中默认不存在,当文件出现,普通用户不能执行at
只有在名单中的用户可以,并且/etc/at.deny失效
1)黑名单deny
#[root@westosaaaaa ~]# vim /etc/at.deny
#westos
#[root@westosaaaaa ~]# su - westos
#[westos@westosaaaaa ~]$ at now+1min
#You do not have permission to use at.
#[westos@westosaaaaa ~]$ exit
#[root@westosaaaaa ~]# su - lee
#[lee@westosaaaaa ~]$ at now+1min
#warning: commands will be executed using /bin/sh
#at>
#[lee@westosaaaaa ~]$ exit
2)白名单allow
#[root@westosaaaaa ~]# vim /etc/at.allow
#westos
#[root@westosaaaaa ~]# su - westos
#[westos@westosaaaaa ~]$ at now+1min
#warning: commands will be executed using /bin/sh
#at>
#[westos@westosaaaaa ~]$ exit
#[root@westosaaaaa ~]# su - lee
#[lee@westosaaaaa ~]$ at now+1min
#You do not have permission to use at.
#[lee@westosaaaaa ~]$ exit
3、系统定时任务crontab
- #/var/spool/cron/username 任务保存文件
1) crontab时间表示方式
分钟 小时 月份第几天 月 周
* * * * * 每分钟
*/2 * * * * 每2分钟
*/2 09-17 * * * 早7-晚5每两分钟
*/2 */2 * * * 每隔2小时每2分钟
*/2 09-17 3,5 1 5 一月的三号和五号以及一月的每个星期五的9点到17点每两分钟执行一次
*/2 09-17 * * 5 每周周五早7-晚5每两分钟
2)系统控制crontab的服务
- crond.service ##当程序开启时定时任务生效
3)crontab
crontab -e #新建
crontab -l #列出
crontab -r #删除
crontab -u root -e #新建
* * * * * touch /mnt/westos{1..5}
crontab -u root -l #列出
crontab -u root -r #删除
4)系统级别的cron(文件方式设定定时任务)
vim /etc/cron.d/file
* * * * * username action
* * * * * root rm -fr /mnt/*
5)crontab的黑白名单
/etc/cron.deny ##系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow ##系统中默认不存在,当文件出现,普通用户不能执行crontab
##只有在名单中的用户可以,并且/etc/at.deny失效
##这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行
黑名单
白名单
6)邮件
dnf install postfix mailx -y #安装
systemctl enable --now postfix #启动服务
mail -u root #查看邮件
mail -s "test 1" root #测试
> /var/spool/mail/root #删除
7)cron任务的输出处理
默认情况下如果定时任务有输出,会以邮件形式发送到任务发起用户的邮箱中,以下方法可不形成邮件
方法一:
vim /etc/sysconfig/crond
CRONDARGS= -s/ -m off
## -s 用输出生成日志
## -m off 关闭输出邮件功能
方法二:
vim /etc/crontab
MAILTO="" # 设定邮件发送路径为空
4.系统中临时文件的管理方式
cd /var/lib/tmpfiles.d/
vim westos.conf
d /mnt/westos 777 root root 10s
##文件类型 文件名称 文件权限 文件所有人 文件用户组 文件生命周期
systemd-tmpfiles --create /usr/lib/tmpfiles.d/*
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*