一、延时任务

1. 什么延时任务

延时任务就是指定任务发生是一次性的,不重复的。延时任务有别于定式任务,定时任务往往是固定周期的,有明确的触发时间。而延时任务一般没有固定的开始时间,它常常是由一个事件触发的,而在这个事件触发之后的一段时间内触发另一个事件。

2.at命令

具体时间下执行

at  08:33                       ##在8:33完成任务

linux学习 lesson14定时任务和延时任务

基于现在时间之后执行

 at now+1min                           ##在一分钟之后执行任务

linux学习 lesson14定时任务和延时任务

at -l                                      ##列出当前所有延时任务

linux学习 lesson14定时任务和延时任务

at -c+任务编号                                       ##查看任务内容

linux学习 lesson14定时任务和延时任务
linux学习 lesson14定时任务和延时任务
at -r ##查看任务
linux学习 lesson14定时任务和延时任务

ctrl+d 执行任务

每写完一个at任务需要 ctrl+d来执行!

时间不能精确到秒

at命令最小的时间单位是分钟。

3.黑名单与白名单

默认情况下所有用户都可以执行at命令。

用户黑名单

黑名单路径:etc/at.deny ##默认存在无需添加

vim etc/at.deny

linux学习 lesson14定时任务和延时任务
linux学习 lesson14定时任务和延时任务
##student用户加入黑名单所以没有权限运行at。而kris可以。
##添加用户 一行一个
##保存后黑名单中的用户无法使用at命令但是root用户可以。

用户白名单

白名单路径:etc/at.allow
##默认不存在 要touch
linux学习 lesson14定时任务和延时任务

vim
添加用户,添加之后黑名单失效,仅有白名单用户可以执行at命令。
linux学习 lesson14定时任务和延时任务
linux学习 lesson14定时任务和延时任务

二、定时任务

什么是定时任务?

用户级定时任务
crontab 基于crond.service
systemctl status crond.service查看命服务是否运行
linux学习 lesson14定时任务和延时任务

man 5 crontab                      ##文件格式

linux学习 lesson14定时任务和延时任务

  crontab           -e                 ##编写文件
                    -u                 ##指定执行用户
                    -r                 ##删除(清空)文件
                    -l                 ##显示文件

linux学习 lesson14定时任务和延时任务
linux学习 lesson14定时任务和延时任务
linux学习 lesson14定时任务和延时任务
linux学习 lesson14定时任务和延时任务
linux学习 lesson14定时任务和延时任务
*/2 08-17 1,15 3,12 3
表示每个星期三 和三月十二月的第1和15日 早八点到下午五点每个两分中执行一次。
文件所在位置:/var/spool/cron/root

黑白名单与at基本相同

黑:/etc/crond.deny
白:/etc/crond.allow

三、系统级定时任务

任务地址:/etc/cron.d (只有超级用户可写)

linux学习 lesson14定时任务和延时任务

文件格式
分种 小时 日 月 周 用户 命令
保存后立即生效(永久定时)并且在crontab下看不到

四、临时文件清理

临时文件策略是什么?

linux系统定期处理工作当中所生成的临时文件。
临时文件策略位置:/usr/lib/tmpfiles.d
linux学习 lesson14定时任务和延时任务
.conf为文件时临时文件策略。

实验:

cd /usr/lib/tmpfiles.d/
vim kris.conf                                                          ##编写临时文件策略,必须.conf结尾。

编写内容:

 d   /mnt/kris    1777 root root 20s                                     ##每20秒清理一次mnt/kris 所生成的临时文件。

linux学习 lesson14定时任务和延时任务
systemd-tmpfiles --create /usr/lib/tmpfiles.d/*
linux学习 lesson14定时任务和延时任务
自动完成临时文件存放点。
在存放点里touch临时文件
linux学习 lesson14定时任务和延时任务
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
执行二十秒后文件被自动删除。
linux学习 lesson14定时任务和延时任务
完成哦!

相关文章: