背景:人不可能时时刻刻在电脑面前,有时候也存在资源占用问题,因此如果可以延时操作或者定时操作,那将方便许多,今天就来介绍这两种方法
一、系统延时
1、at命令:(1)at+具体时间表示在将来的特定时间执行你的操作
1)我们可以先在/下建立一个add文件
用watch -n 1 ls -l /add 监控
2)此时执行at命令+具体时间,完成后会>跟你的操作,完成后ctrl+d退出,如下图
(2)at -l 表示列出当前的延时任务和任务号(可以看到时间和给出命令的操作者)
(3)at -r 任务号 删除未执行的延时任务
如图,我先给了一个任务,然后列出来可以显示,此时我删除这个任务,只需要选择其任务号,删除后我列出发现已经没有,表示操作成功。
(4)at -c 任务号表示查看延时任务的执行动作
(5)at命令的黑名单:at延时命令的黑名单是系统存在的,当在该黑名单中写入用户名称,则被写入的用户不能执行at命令
用vim /etc/at.deny打开编辑
如上图我将text加入黑名单,此时我切换到text用户,发现at命令将不能被执行
(6)at命令的白名单:默认系统中不存在白名单,需要自己创建,当白名单创建生效后,黑名单则为无效
用vim /etc/at.allow打开编辑
如上图,我将text写入白名单,此时黑名单也有text,我切换到text用户执行at命令,可以进行操作
(7)at now+1min:表示指定任务的延时时间为当前时间加一分钟,即当前时间一分钟后执行,如下图
二、系统定时:cron程序是由crond.service提供的,写入该程序的时间和事件是永久保存的
1、crontab命令
(1)crontab -e表示当前用户给出定时任务命令,执行后会打开一个vim编辑的窗口,如下图
上图有5个星号,依次表示分钟,小时,天,月,周几。上图的指令就是每月每天每小时每分钟在/att/下建立vm1文件
(2)crontab -e -u 用户 表示指定用户给出定时任务命令,如下图,指定text用户
命令为每月的1号和3号以及每月的周三的16:32删除/att/vm1
(3)crontab -l列出系统的定时任务(只能列出当前用户的)
(4)crontab -r删除定时任务(只能删除当前用户的)
(5)crontab的黑白名单(和at的黑白名单类似)
1)黑名单:黑名单是系统默认存在的,写入黑名单的用户将无法执行cron命令
命令:vim /etc/cron.deny
2)白名单:系统中默认没有白名单,需要自己创建,白名单创建生效后,黑名单将不再生效命令:vim /etc/cron.allow
(6)cron任务记录文件存放位置:/var/spool/cron/*,如下图,表示只有root给了定时任务三、临时文件
1、执行临时文件配置
2、编辑临时文件,先生成一个目录这里我生成的是/westos/ 编辑/lib/tmpfiles.d/westos.conf,在里面写入下面的内容
写在里面的内容表示的意义: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/监控你的操作。