linux系统中的延时任务与定时任务

本文介绍Linux系统中延时任务与定时任务的设定与管理,包括at命令的使用方法,crontab命令的详细设定,以及执行权限的控制。同时,探讨了临时文件的管理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


通过使用延时任务和定时任务,我们可以更自动化地去管理系统。
延时任务只在设定的时间执行一次。
而定时任务则是在固定时间周期循环执行。

延时任务

使用at命令设置延时任务:
两种方式:
(1)at 具体时间
at 09:14
(2)at now+延迟时间
at now+1min

at -l 查看(未执行)延时任务列表
at -c num 查看num号延时任务的具体内容
at -r num 取消num号延时任务的设定
(num号为at -l命令所显示的列表中的序号)

注意:
当任务有输出时,输出会以邮件的形式发送给at任务的发起者
(即是向延时任务的发起者进行任务的执行情况的结果的报告反馈)

查看用户邮件:
mail -u username 查看username用户的邮件
n 查看第n封邮件内容
q 退出邮件查看

下图为例:
图一中,可见延时任务设定方式:
at 命令进入延时任务的设定
touch file 为延时任务的内容,回车后,使用ctrl+d发起延时任务。
显示4号延时任务(job4),将在14:25:00执行

图二中,使用第二种方式的at命令,我在14:29时使用at命令,设定任务应该在14:30执行;
但是,我在14:30以后才使用ctrl+d发起该延时命令,此时该延时任务立即执行了。

图三,四,五中,显示at -l,at -c,at -r命令的执行结果:
图三中,我设定了一个延时任务,并使用at -l显示,at -c查看其任务内容
在图四中的最后一行,我们可以看到显示了任务内容为:echo hello
图五中,我设定了第二个延时任务,并使用at -r将其取消

图六中,我设定了延时任务输出hello,并在邮件中查看其内容:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

延时任务的执行权限(黑白名单)

系统中默认所有用户都是可以执行at命令的

/etc/at.deny 黑名单(拒绝名单)
/etc/at.allow 白名单(允许名单)

我们系统中是默认存在/etc/at.deny文件的,且其内容为空;因此默认所有用户都是可以执行at命令的
但是/etc/at.allow却不是默认存在的,当我们建立该文件时,系统就会只读取该文件而不再读取/etc/at.deny文件。
因此/etc/at.allow文件的优先级要高于/etc/at.deny文件

下图为例:
图一,二中,为设置黑名单前后的执行结果:
图一中,初始黑名单为空,mike用户可以使用at命令;更改黑名单后,mike用户无法使用at命令。
图二为黑名单更改后的内容。

图三,四中,为设置白名单前后的执行结果:
图三为我新建的白名单内容,未写入内容,为空。
图四中,可见初始无白名单。我将黑名单编辑为空文件,新建白名单也为空,此时mike用户仍然无法使用at命令。可见,白名单的优先级别更高
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

定时任务

定时任务的最小单位是分钟。
crontab命令设定定时任务:
crontab -u username -r 将用户的所有定时任务都删除
crontab -u username -e 设定用户的定时任务
crontab -u username -l 查看用户的定时任务

crontab 中时间的表示方式:
* * * * *分别表示时间单位:
分钟,小时,天,月,周
更多的详细设定可以查阅:man 5 crontab

示例:
* 2 * * * 每天第2小时(2点)执行定时任务
* /2 * * * 每天的每2小时执行一次定时任务

注意:
crontab命令是由crond服务来控制的,只有crond服务开启的时候,crontab命令才有效

以文件的方式设定定时任务:

vim  /etc/cron.d/file
   * * * * *   root	 touch /dir

下图为例:
图一中,使用crontab -e命令设定root用户的定时任务。并在执行一次后,使用crontab -r命令将该定时任务删除
图二中可见,关闭crond服务后,定时任务不再执行
图三,四中,为文件方式设定定时任务。编辑保存文件后,即设定完成定时任务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

定时任务的执行权限(黑白名单)

与延时任务一样,系统中默认所有用户都是可以执行crontab命令的

/etc/cron.deny 黑名单(拒绝名单)
/etc/cron.allow 白名单(允许名单)

我们系统中是默认存在/etc/cron.deny文件的,且其内容为空;因此默认所有用户都是可以执行at命令的
但是/etc/cron.allow却不是默认存在的,当我们建立该文件时,系统就会只读取该文件而不再读取/etc/cron.deny文件。
因此/etc/cron.allow文件的优先级要高于/etc/cron.deny文件

设定方式也和延时任务一样

下图为例:
在这里插入图片描述

临时文件的管理

cd /usr/lib/tmpfiles.d/
在该目录下的.conf文件中,编辑内容,使用相应的命令systemd-tmpfiles --create/clean便可以用于管理临时文件

下图为例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值