Linux基础学习(十七)之系统延时任务及定时任务

1、系统延时任务

系统中可以设定某个时间作某个动作,叫延时任务,就不需要人一直盯着,到了时间自动执行。该命令是at 时间来发起(时间只能精确到分),管理命令有:
(1)at -l 查看任务列表
(2)at -c 任务号 查看任务内容
(3)at -r 任务号 取消任务执行

测试如下图,为了更直观,监控了mnt目录,我们设定在17点24分执行延时任务,动作是在mnt下建立一个文件file1,按Ctrl+D发起任务,结果显示确实在17点24分在mnt下建立了文件file1。
在这里插入图片描述
也可以使用at now+1min的方式执行一分钟后的延时任务。
在这里插入图片描述
当执行有输出的任务时,输出会以邮件的形式发送给at任务的发起者,如果没有邮件系统,需要提前安装邮件软件postfix和mailx,然后开启postfix。

dnf install postfix mailx -y
systemctl start postfix

at创建一个有输出的命令echo hello word!,输出结果会以邮件形式发给命令发起者,使用mail -u root可以查看邮件,打开邮件系统时,选择邮件号,查看邮件内容,header回到邮件主页面,quit退出。
在这里插入图片描述
邮件存于/var/spool/mail/root,多了可以使用>清空邮件。

> /var/spool/mail/root

2、系统延时任务的黑白名单

系统中默认存在黑名单文件/etc/at.deny,在此文件中出现的用户无法执行at命令。实验如下图,建立两个用户westos和lee,刚开始两个用户都可以使用at,修改了/etc/at.deny文件添加lee后,westos正常,lee不可以使用at了。
现的用户不能
系统中默认不存在白名单文件/etc/at.allow,一旦白名单文件出现,只有在名单中的用户可以执行at命令。实验如下图,创建了白名单,白名单里没有写任何东西,那么就意味着任何用户都不可以,只有超级用户root可以。
在这里插入图片描述
如果黑名单白名单同时存在,并且都写的同样的内容会出现什么情况呢?实验如下图,黑名单白名单都写的lee,结果显示lee可以使用at,westos不可以使用at。原因是白名单比黑名单的优先级高,一旦出现白名单,就不读取黑名单了,所以lee可以使用,westos不可以。这也就是为什么默认没有白名单的原因。
在这里插入图片描述

3、系统定时任务

我们可以设定每隔一段时间执行一个动作,叫定时任务。软件名称叫crond.service,任务保存文件在/var/spool/cron/username,时间的表示方式有五位,分别表示为分钟、小时、天、月、周,直接用* * * * * 表示每分钟一次,用*/3 * * * * 表示每三分钟一次。分钟可选范围为0-59、小时可选范围为0-23、天可选范围为1-31、月可选范围为1-12、周可选范围为0-7(0和7都是周天),注意星期和月份是单独算得。主要的命令有:
(1)crontab -e -u root 编辑一个定时任务
(2)crontab -l -u root 查看定时任务列表
(3)crontab -r -u root 删除定时任务
是用户级别的设定
实验如下图,为了效果,我们打开对mnt的监控,编辑一个定时任务,每分钟执行一次在mnt下创建文件file(虽然监控里的文件只有一个,但是每分钟过去他的时间戳都会变,说明每分钟都执行一次)。-l可以查看定时任务列表,-r可以删除定时任务。
在这里插入图片描述
也可以用文件方式设定定时任务(系统级的设定),在 /etc/cron.d/westos里编辑定时任务,注意要加执行者的名称。文件方式设定的定时任务,无法使用crontab -l -u root 来查看定时任务列表。
在这里插入图片描述
如果命令有输出的话,会发送到邮箱中。如果很烦,不想要邮件,可以编辑/etc/sysconfig/crond这个文件,-s表示发邮件,-m off表示邮件关闭,然后重启crond服务,可以看到现在时间是22:02,邮件截止到22:01,后面再不发送邮件了。
在这里插入图片描述

4、crontab的黑白名单

crontab的黑白名单和at的黑白名单规则一致,系统中默认存在黑名单文件/etc/cron.deny,在此文件中出现的用户无法执行crontab命令,但是当黑名单有lee时,root使用命令crontab -e -u lee是可以的,因为操作者是root,有权限。系统中默认不存在白名单文件/etc/cron.allow,一旦白名单文件出现,只有在名单中的用户可以执行crontab命令。并且一旦出现白名单,黑名单就实效了。
这两个名单都不会影响/etc/cron.d/目录中定时任务的发起及执行。

5、临时文件的管理

临时文件就是软件运行需要建立的文件,用完了就可以清理的文件。但是再用的过程中不可以被清理。临时文件的管理配置目录在/usr/lib/tmpfiles.d/,实验如下图,创建了一个配置文件,里面写了规则d /mnt/westos 1777 root root 10s,意思为对于/mnt/westos这个目录,权限是1777,所有者和所有组都是root,该目录下的所有文件超过十秒钟才可以被清理。然后systemd-tmpfiles --create /usr/lib/tmpfiles.d/westos.conf读取刚才写的配置文件,会创建新目录westos,然后我们在该目录下创建文件,使用systemd-tmpfiles --clean /usr/lib/tmpfiles.d/westos.conf会清除超过十秒的文件,而存在小于十秒的文件不会被清理。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值