Linux系统延时和定时机制

背景:人不可能时时刻刻在电脑面前,有时候也存在资源占用问题,因此如果可以延时操作或者定时操作,那将方便许多,今天就来介绍这两种方法

一、系统延时

1、at命令:(1)at+具体时间表示在将来的特定时间执行你的操作

1)我们可以先在/下建立一个add文件

用watch  -n 1 ls -l /add 监控

Linux系统延时和定时机制

2)此时执行at命令+具体时间,完成后会>跟你的操作,完成后ctrl+d退出,如下图

Linux系统延时和定时机制


(2)at  -l 表示列出当前的延时任务和任务号(可以看到时间和给出命令的操作者)

Linux系统延时和定时机制

(3)at  -r 任务号 删除未执行的延时任务

Linux系统延时和定时机制

如图,我先给了一个任务,然后列出来可以显示,此时我删除这个任务,只需要选择其任务号,删除后我列出发现已经没有,表示操作成功。

(4)at -c 任务号表示查看延时任务的执行动作

Linux系统延时和定时机制

Linux系统延时和定时机制

(5)at命令的黑名单:at延时命令的黑名单是系统存在的,当在该黑名单中写入用户名称,则被写入的用户不能执行at命令

用vim /etc/at.deny打开编辑

Linux系统延时和定时机制

如上图我将text加入黑名单,此时我切换到text用户,发现at命令将不能被执行

Linux系统延时和定时机制

(6)at命令的白名单:默认系统中不存在白名单,需要自己创建,当白名单创建生效后,黑名单则为无效

用vim /etc/at.allow打开编辑

Linux系统延时和定时机制

如上图,我将text写入白名单,此时黑名单也有text,我切换到text用户执行at命令,可以进行操作

Linux系统延时和定时机制

(7)at now+1min:表示指定任务的延时时间为当前时间加一分钟,即当前时间一分钟后执行,如下图

Linux系统延时和定时机制

Linux系统延时和定时机制



二、系统定时:cron程序是由crond.service提供的,写入该程序的时间和事件是永久保存的

1、crontab命令

(1)crontab  -e表示当前用户给出定时任务命令,执行后会打开一个vim编辑的窗口,如下图

Linux系统延时和定时机制

Linux系统延时和定时机制

上图有5个星号,依次表示分钟,小时,天,月,周几。上图的指令就是每月每天每小时每分钟在/att/下建立vm1文件

(2)crontab -e -u 用户 表示指定用户给出定时任务命令,如下图,指定text用户

Linux系统延时和定时机制

Linux系统延时和定时机制

命令为每月的1号和3号以及每月的周三的16:32删除/att/vm1

(3)crontab -l列出系统的定时任务(只能列出当前用户的)

Linux系统延时和定时机制

(4)crontab -r删除定时任务(只能删除当前用户的)

Linux系统延时和定时机制

(5)crontab的黑白名单(和at的黑白名单类似)

1)黑名单:黑名单是系统默认存在的,写入黑名单的用户将无法执行cron命令

                      命令:vim /etc/cron.deny

2)白名单:系统中默认没有白名单,需要自己创建,白名单创建生效后,黑名单将不再生效

                      命令:vim /etc/cron.allow

(6)cron任务记录文件存放位置:/var/spool/cron/*,如下图,表示只有root给了定时任务

Linux系统延时和定时机制

三、临时文件

1、执行临时文件配置

Linux系统延时和定时机制

2、编辑临时文件,先生成一个目录这里我生成的是/westos/ 编辑/lib/tmpfiles.d/westos.conf,在里面写入下面的内容

Linux系统延时和定时机制

Linux系统延时和定时机制

写在里面的内容表示的意义:d表示格式,/westos表示你生成的目录   1777表示权限 root所有人  root所有组 5s(表示在5s内不能对其进行清除操作,时间可以自行设定,这就是临时文件的核心)

3、在/westos/下建立文件,发现5s内无法对其进行清除操作,但是5s后的文件可以。清除临时文件操作systemd-tmpfiles --clean /lib/tmpfiles.d/westos.conf  进行这个操作可以watch -n 1 ls  -l /westos/监控你的操作。