系统定时任务(永久)及延时任务(一次性)
引入目的
定时维护(某一时间段内自动执行)
1.系统延时任务
[root@foundation26 westos]# at 15:09 ##设定任务执行时间
at> rm -fr /mnt/westos/* ##任务动作
at> <EOT> ##用ctrl+d发起任务
job 2 at Sun Jan 20 15:09:00 2019 ##任务执行时间
[root@foundation26 westos]# at now+1min##延时1分钟后执行
at> echo heihei ##任务动作
at> <EOT>
job 3 at Sun Jan 20 15:10:00 2019
at -l ##查看任务列表
at -c 任务号 ##查看任务内容
at -r 任务号 ##取消任务执行
执行指定时间延时任务的效果
执行now延时任务
任务效果,以及查看任务列表和内容
注意:
当任务有输出时,输出会以邮件的形式发送给at任务的发起者
mail -u root ##查看超级用户的邮件
邮件里的操作
1 ##查看第一封邮件
q ##退出
> /var/spool/mail/root ##清空邮件
2.at任务的黑白名单
/etc/at.deny ##系统中默认存在,在此文件出现的用户不能执行at
/etc/at.allow ##系统中默认不存在,当文件出现时,不再文件中的用户不能执行at
白名单的优先级高于黑名单,当一个用户同时在两个名单中,at.deny失效
3.系统定时任务
(1)crontab时间表示方式
* * * * * ##每分钟
五个星分别代表:每分钟 那些小时 那些天 那些月 那些周
第五个*和前四个可以分开处理
“/”表示间隔多少
“-”表示什么时候到什么时候
“,”表示一个列表
*/2 * * * * ##每隔两分钟
*/2 09-17 * * * ##早7-晚5每两分钟
*/2 */2 * * * ##每隔两小时每两分钟
*/2 09-17 3,5 * * ##每月的三号和五号的早9到晚5每两风中
*/2 09-17 * * 5 ##每周五的早9到晚5的每隔两分钟
(2)系统控制crontab的服务
crond.service ##当程序开启时定时任务生效
(3)crontab
crontab -e ##在那个用户环境下就为那个用户配置定时任务
crontab -e -u 用户名 ##为指定用户配置定时任务
crontab -l -u 用户名 ##查看有哪些定时任务
crontab -r -u 用户名 ##删除定时任务
(4)文件方式设定定时任务(crontab -e进入文件方式设定)
/etc/cron.d/ 定时任务所在文件夹
格式 * * * * * username action
* * * * * root rm -fr /mnt/westos/*
(5)crontab的黑白名单
/etc/cron.deny ##系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow ##系统中默认不存在,当文件出现,普通用户不能执行crontab
只有同时在两个名单中的用户可以,并且/etc/cron.deny失效,这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行
4.系统中临时文件的管理方式
cd /usr/lib/tmpfiles.d/ ##管理临时文件配置所在的目录
vim westos.conf
d /mnt/westos 777 root root 8s ##指定那些文件要被清理
类型 目录 权限 用户名 用户组 文件存在时间
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##创建开启清理服务(但不会清理,
只是让系统知道这个文件需要被执行清理服务)
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##执行清理服务