定时与延时任务
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定时与延时任务相关的知识,希望对你有一定的参考价值。
一、延时任务
atd 服务
linux 下一次性定时计划任务命令的守候进程,是一种开机自启的服务
at命令是在atd服务开启的情况下才可以进行操作,否则会出现报错。
at类似打印进程,会把任务放到/var/spool/at目录中,到指定时间运行它 。at命令相当于另一个shell,运行at time命令时,它发送一个个命令,可以输入任意命令或者程序。
参数详解
>at -V 输出版本编号
>at -l 列出所有的延时任务
>at -c job 会在终端返回该延时任务的所有的详细信息
>at -r job 删除此延时任务
>
>
>
>
>
at命令执行权限的设定
黑名单:/etc/at.deny
白名单:/etc/at.allow
在系统中不存在白名单时,黑名单中设定的用户是不能进行执行at命令的。
在系统存在白名单时,系统默认白名单中的用户可进行at操作
当此allow文件为空时,表示仅管理员可以进行at操作
二、定时任务
crond服务
crond是linux系统中用来定期执行命令或指定程序任务的一种服务或软件
crond可以满足系统周期性要进行的活动
crontab参数详解
crontab -u user 使用什么身份(若无指定,表示使用当前用户身份)
crontab -e 表示编辑crond文件内容
crontab -u root -e
分 时 日 月 周
星号 星号 星号 星号 星号 rm -fr /mnt/* 表示每分钟进行删除mnt目录中的操作
crontab -u root -l 在终端返回root用户的定时任务
crontab -u root -r 删除此用户的所有定时任务
在/var/spool/cron/目录中会有以用户名为名称的文件名
crontab -u root -r -i在执行删除操作时进行提示
配置crontab黑白名单
与at命令一致,
在系统中不存在白名单时,黑名单中设定的用户是不能进行执行at命令的。
在系统存在白名单时,系统默认白名单中的用户可进行at操作
当此allow文件为空时,表示仅管理员可以进行at操作
三、systemd-tmpfiles命令的使用
此命令主要是根据/usr/lib/tmpfiles.d中文件的指引,进行指引,创建、删除、清理 易变文件与临时文件。
文件内容的格式为:
f /mnt/file1 1755 root linux 1m
f表示为文件
/mnt/file1 表示在/mnt目录下file1文件
1755表示对此文件的权限
root linux 分别表示为此文件的所属人与属组
1s表示1秒钟
create 创建及写入所有 f, F, w, d, D, v, p, L, c, b, m 标记的文件与目录
--clean 清理所有过期的文件与目录
在这里可以知道为什么/tmp目录中会进行定期清理内容
以上是关于定时与延时任务的主要内容,如果未能解决你的问题,请参考以下文章
JUC并发编程 共享模式之工具 ThreadPoolExecutor -- 任务调度线程池 定时任务 / 延时执行(ScheduledThreadPoolExecutor 延时执行 / 定时执行)(代