Linux系统中 延时任务和定时任务的设定

第一个: Linux系统中 延时任务的设定:

at 命令的简介:

计划任务,在特定的时间执行某项工作,在特定的时间执行一次,需要安装at服务,apt-get install at

at允许使用一套相当复杂的指定时间的方法。
● 能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
● 能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm
● 能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2009-03-1
● 能够使用相对计时法。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。 例如:now + 5 minutes 04pm + 3 days
● 能够直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

 

开始实验了解at命令吧:

基本命令如下:

at     时间         #设定延时任务的时间点

at     now+时间     #另一种设定演示任务时间的方式

at      -l          #查看所有已经设定的延时任务

at    -c+任务代号    #查看任务详情

at    -r +任务代号   #取消设定好的延时任务

ctrl     +d         #使任务生效!

话不多说开始实验吧:

在/mnt目录下建立10个westos文件:

监视这10个文件:

监视的效果如下:

设置在00:17分 进行 删除/mnt/底下的所有文件的延时任务;

在这里我们at 00:17 回车确定之后输入,需要输入我们想要进行的操作,需要按 crtl+d 执行命令才能生效!!!

方法1:

方法2:

 

 

观察实验结果:(可以看到00:17的时候删除了所有westos文件!)

新设定一个延时任务:用at -l 查看任务:(注,代号为2,因为上一个实验代号为1,虽然已经执行过了)

利用 at -c 2 查看2号任务的任务详情:

可以看到这是一个脚本文件,东西比较多,我们想观察的东西在最后面:


可以看到我们设定的任务内容:

在任务没有到执行时间之前我们可以通过 at +r +任务号 来取消任务:

 

2.延时任务的黑白名单:

 a:黑名单:配置文件为:/etc/at.deny,用户名字出现在黑名单里将不能使用at命令:

创建一个用户cool:

编写配置文件:(vim /etc/at.deny)

切换到cool用户 使用at命令可以看到:(被禁止使用at命令了)

将cool从黑名单中清除掉后发现cool用户又可以使用at命令了:

b:白名单:系统默认没有白名单的配置文件,需要我们自己创建一个/etc/at.allow文件:

我们将asuka用户放入白名单中,只有asuka用户可以使用at命令:『当然root超级用户没有影响』限制不到。

可以看到:(asuka可以,cool不可以)

注:白名单默认优先级高于黑名单,所以当黑白名单都存在,且当黑白名单里都有同一用户时,以白名单为基准!:

 

第二个Linux系统中定时任务的设定:

首先:定时任务是由cron.service提供的,首先得确认该服务是否开启:

可以看到本机里crond服务是开启的:

常用命令:

crontab -e   #编辑当前用户的定时任务(会将编写的文件存放到/var/spool/cron/username下)

crontab -u username -e   #在其他用户情况下编辑某一个用户的定时任务(仅root用户可以用)

任务编写格式:

*   *   *   *   *     +  命令   #其中*后可以跟 /数字,表示每隔数字个单位
分  时  日   月  周

eg:

每隔2分钟删除一次/mnt底下的文件

 

再比如:(04 * * * *  +操作 表示 每月每周每日每小时过五分钟执行一次操作!)

(04 02 * * *+操作 表示: 每月每周每日的凌晨2点过4分钟执行一次操作!)

(。。。

其中 - 表示  连续  , 表示 和的关系)

(* 9-10 1,14  * *表示每月每周的1到14号的 9到10点的每分钟执行什么操作)

@查看及取消定时任务:

查看:两种办法:

办法1:

办法2L

 

取消任务:

@与at命令相同定时任务也有黑白名单:

黑名单:/etc/cron.deny ,在黑名单里的用户不可以使用定时任务

创建出白名单:/etc/cron.allow(默认下所有用户全黑)

同at命令,白名单优先级高于黑名单,用户同时存在于两名单中,以白名单为基准!

 

#但这些定时任务都是系统开启的情况下才会生效的(比如我们设定今天9点reboot系统,如果我们今天的8:59关机了,就不会执行了,开机也不会执行)

所以我们需要定制系统级的定时任务:

    简介:

属于系统的任务通常保存在 /etc/crontab 文件中而不是使用  crontab -e 编辑保存在个人文件中。更好的做法是用文本编辑器创建 crontab 文件并保存到 /etc/cron.d 中 ( 避免更新系统软件包 cronie 时出现问题 ) 。 /etc/cron.d/crontab  文件在日期说明后另加一个字段 , 表示将运行作业的用户


对于需要每天、每周或每月运行一次的脚本 , 可以直接将其设置为可执行文件 , 并保存在 /etc/cron.{daily,weekly,monthly} 中相应目录下。这些任务由 /etc/anacrontab 配置的系统 anacron 服务运行  anacron 是 cron 的集成组件 , 用于更好地管理作业 , 并确保在作业

如果系统关闭,错过crontab的执行,则在开启系统时,anacron会检测是否有crontab漏执行,如果有则立即执行。
anacron命令检测是否有crontab漏执行,不是文件

 

实验:

在/etc/cron.d/目录下新建文件redhat,并且编辑redhat文件,设置定时任务:

在 01:37分删除/mnt底下所有文件:

/mnt底下的文件

 

 

开机可以发现文件被删掉了(不同于普通级别的错过时间就不再执行)

最后:临时文件的清理:

系统中服务在正常运行时都会产生临时文件
在系统中 /usr/lib/tmpfiles.d/ 标实服务的临时文件存放位置

/usr/lib/tmpfiles.d目录下以.conf结尾的文件都是临时文件,编辑文件创建临时目录

实验:

编辑一个ccc.conf文件

vim /usr/lib/tmpfiles.d/ccc.conf

内容为:从左到右依次:(目录,目录名 ,权限,用户,组,目录中的文件的生效时间『当时间超出这个时间 就会清除文件』)

在westos下创建了file1 file2文件,过了8s开始测试

可以看到清除掉了(当时间不到8s时清除不掉)

没到8s清除不掉:

Linux,我们可以使用cron和at命令来创建定时任务延时任务。cron是一个在后台运行的守护进程,它可以根据预定的时间表执行命令或脚本。而at则是一种命令行工具,可以在指定的时间执行一次性任务。 1. 定时任务Linux系统定时任务可以使用cron命令进行配置。cron命令允许用户在指定的时间间隔内从命令行或脚本运行命令。 在cron,时间间隔由5个字段来定义: ``` * * * * * command to be executed - - - - - | | | | | | | | | +----- day of the week (0 - 6) (Sunday=0) | | | +------- month (1 - 12) | | +--------- day of the month (1 - 31) | +----------- hour (0 - 23) +------------- min (0 - 59) ``` 例如,要在每周一的早上5点运行一个脚本,可以使用以下命令: ``` 0 5 * * 1 /path/to/script.sh ``` 这将在每天的5:00 AM执行/path/to/script.sh脚本,只有当日期为周一时才会执行。 2. 延时任务Linux系统,我们可以使用at命令来创建延时任务。at命令允许用户在指定的时间运行一次性任务。 使用at命令创建一个延时任务的基本语法格式如下: ``` at TIME <<EOF command1 command2 ... EOF ``` 其TIME可以是绝对时间或相对时间,也可以使用日期和时间的组合。例如,以下命令将在10分钟后运行命令: ``` at now + 10 minutes <<EOF /path/to/command EOF ``` 此外,也可以使用at命令来指定一个具体的时间运行命令: ``` at 2:00am tomorrow <<EOF /path/to/command EOF ``` 这将在明天的凌晨2点运行命令。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值