1.延时任务的设置
命令 | 作用 |
---|---|
at -l | 查看任务 |
at -c 编号 | 查看任务内容 |
at -r 编号 | 取消任务 |
- 方法一
我们查看到/mnt目录下有4个文件;
设定23:09时删除掉/mnt/所有文件。
at -l命令查看任务。
等到23:09后查看/mnt/目录下没有文件了。
设置一个延时任务时参数含义:
- 方法二
我们可以设置在当前时间的基础上设定延时任务。
我们下面的例子中是在当前时间后一分钟删除/mnt/目录下所有文件。当任务执行后,使用查看语句at -l语句已经查看不到任务了。
我们设置一个任务后,系统会给这个延时任务编号,我们可以通过命令at -c 编号 来查看任务的内容。(内容过长没有全部截图,我们可以在内容最后几行看到任务的语句。)
如果我们编写了一个延时任务后不想让其执行了,可通过at -r 编号 语句取消这个延时任务。如下图:
2.延时任务的黑白名单
- 黑名单
我们在/etc/at.deny(延时任务黑名单文件)文件中添加westos用户。之后转换到westos用户设置延时任务,发现没有权限。
在转换到student用户,设置延时任务,发现可以设置延时任务。但是,我们的/mnt目录下创建文件的任务并没有执行(如图1)。因为student用户对/mnt目录没有写权限。在设置延时任务时没有报错,我们使用student用户直接在/mnt目录下创建文件就会报错(如图2)。所以我们只能对本用户有写权限的目录设置延时任务(如用户家目录)就会顺利完成延时任务(如图3)。
图1
图2
图3
在/etc/at.deny文件中去掉westos,westos用户又可以设置延时任务了。
- 白名单
系统中没有白名单,我们要按照黑名单的格式创建一个白名单。
在白名单文件中写入westos用户。
westos用户就可以设置延时任务。
而student用户就不可以设置延时任务。
此外,当黑名单与白名单同时有westos用户时,westos用户依然可以设置延时任务。
3.定时任务的设置
命令 | 作用 |
---|---|
crontab -e | 创建定时任务 |
crontab -l | 查看定时任务 |
crontab -r | 取消定时任务 |
设置定时任务前,我们首先查看crond.service状态,若是关闭状态,打开服务。再查看设置定时任务的格式。通过man 5 crontab命令查看定时任务设置的格式。
field allowed values
----- --------------
minute 0-59
hour 0-23
day of month 1-31
month 1-12 (or names, see below)
day of week 0-7 (0 or 7 is Sunday, or use names)
- 方法一
(1)root用户设置定时任务
我们在/mnt/目录下创建几个文件,crontab -e命令创建定时任务。
crontab -e命令编写内容如下,这个设定让/mnt/目录下只要有文件每隔一分钟就会被清理。
定时任务的取消与查看。
(2)root用户指定普通用户设置定时任务
普通用户westos对/mnt/目录设置定时任务失败,因为此用户对/mnt目录没有写权限,所以定时任务时普通用户只对自己有写权限的目录文件进行操作。
我们创建一个目录给此目录的权限设定为任何用户都有写权限,就可以解决写权限的问题,如下面的例子,我们的定时任务设定成功。
定时任务的查看与取消命令
(2)普通用户设置定时任务
我们也可以切换到此用户进行定时任务的设置:
定时任务内容:
定时任务的取消与查看
- 方法二
除了crontab -e命令设置定时任务,我们还可以使用编写/var/spool/cron/root文件来设置定时任务。
/var/spool/cron/root文件中编写的内容及其含义:
我们还可以通过cat命令或crontab -l命令查看定时任务。
对于某些定时任务,当我们不想使用时可以通过crontab -r命令取消,取消后查看定时任务,已经没有任务。
- 系统级的定时设置
在/mnt目录下创建4个文件,在/etc/cron.d/目录下编写一个文件,文件内容如图2。
图1
图2 - anacron
检测crontab的错误,当我们关机错过crontab的任务后,开机时anacron就会检测到之后立即执行。
注意:systemctl stop crond.service 服务关闭后,crontab所有操作不进行
4.定时任务的黑白名单
- 黑名单
在定时任务黑名单/etc/cron.deny文件中加入westos用户名,westos用户不可再进行定时任务的设置。
/etc/cron.deny文件中写入的内容。
但是root用户可以指定westos用户设置定时任务,如下图。(文件在上图已经建立好)
定时任务内容:
为不影响下面的实验,取消定时任务。 - 白名单
/etc/cron.allow文件中写入的内容。
定时任务内容:
此时,其他普通用户不可进行定时任务的设置。
与黑名单一样,root用户也可以指定student用户进行此操作
定时任务的内容:
5.临时文件
我们转换到/usr/lib/tmpfiles.d/目录下,查看其中文件,创建一个与其他文件类型相同的文件。
文件中所写的内容:
含义是:目录 权限 用户 组 文件存在时间。
编写完文件和/mnt目录下没有任何东西,我们使用systemd-tmpfiles - -create命令创建出/mnt/westos目录。
我们在/mnt/westos目录下创建文件111,过8秒后,使用systemd-tmpfiles - -clean命令清理失效文件,发现/mnt/westos目录下没有任何文件。
创建文件222后,立即使用清理命令,222文件依然存在,再次清理时222文件已经达到了8s的存在时间,222文件失效。