Linux学习13延时任务、定时任务

1.延时任务
延时任务:在某段时间之后或者在某个固定的时间执行设定的任务,该任务只执行一次。
(1)at命令
at 时间 ##设置任务执行时间 例at 12:34 enter在12:34执行以下任务。
进入下行设置任务命令。
at> touch file 1 ##任务动作(可以继续)以touch /mnt/file1 为例 ,可以继续enter添加多个任务。
ctrl + d 发起任务。Linux学习13延时任务、定时任务
at+l 任务号 ##查看任务 。
at+c 任务号 ##查看任务内容。
Linux学习13延时任务、定时任务Linux学习13延时任务、定时任务
at now+时间 ##延时一段时间执行任务,示例延时1min执行 touch /mnt/file2任务。
Linux学习13延时任务、定时任务
at+r 任务号 ##取消任务执行。
当延时任务有输出时候,并不是输出在终端上,而是以邮件的形式发送给任务的发起者。例如延时执行date命令,并没有时间输出到该终端,但该延时任务已经执行,可以查看用户的邮件。
mail -u root# 查看超级用户的邮件
1 # 查看第一封邮件的详细信息
q # 退出
Linux学习13延时任务、定时任务
(2)延时任务的黑白名单
延时任务的黑名单在系统中默认存在,在黑名单中的用户无法使用at设定延时任务。黑名单文件: /etc/at.deny。
以student用户为例。
Linux学习13延时任务、定时任务
延时任务的白名单在系统中默认并不存在,如果自行创建,黑名单将失效,并且只有出现在白名单中的用户才能使用at设定延时任务,但超级用户不受限制。白名单文件: /etc/at.allow。
以student用户为例。
Linux学习13延时任务、定时任务
2.定时任务
(1)命令:crontab。
前提:crontab由crond.service 服务控制,只有当该服务开启时,所设定的定时任务才能生效。
Linux学习13延时任务、定时任务
在使用定时任务时候,需要设定执行任务的时间,时间格式如下:
* * * * * #共五部分,每个*依次表示 分钟 小时 天 月 星期。
例如:
*/2 * * * * #表示每2分钟
*/2 */3 * * * #表示每隔3小时,然后每2分钟
*/2 9-15 * * * #表示9点到15点 每隔2分钟
/10 9-15 12,25 7 5 #表示7月的12号、25号以及每个星期五的9-15点每隔10分钟
/10 8-10 * * 1 #表示每周一8-10点 每隔10分钟
crontab -e -u #指定用户创建定时任务。
crontab -l -u #查看指定用户的定时任务。
crontab -r -u # 取消指定用户的定时任务。
Linux学习13延时任务、定时任务
(2)crontab 的黑白名单(与延时任务的黑白名单类似)
crontab 的黑名单/etc/cron.deny 在系统中默认存在,出现在黑名单中的用户将无法使用crontab设定定时任务。
以student用户为例。
Linux学习13延时任务、定时任务
crontab 的白名单/etc/cron.allow 在系统中默认不存在,只有出现在白名单中的用户才能使用crontab设定定时任务,超级用户不受限制。
以student用户为例。
Linux学习13延时任务、定时任务
3系统中临时文件的管理
systemd-tmpfiles 系统用来创建、管理、删除临时文件的命令。设定临时文件合适的清理周期,能保证系统中临时文件不会占用大量资源。
cd /usr/lib/tmpfiles.d/
创建xxx.conf 文件,并编辑写入规范。以yan.conf为例。
Linux学习13延时任务、定时任务
systemd-tmpfiles --create /usr/lib/tmpfiles.d/

编写一个临时目录的规范文件,并扫描该规范文件创造出该目录
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/

使用该指令对临时文件的规范文件进行扫描,过期的临时文件会被清理
Linux学习13延时任务、定时任务Linux学习13延时任务、定时任务