linux系统中的定时和延时任务

一. 系统的延时任务

1.1 at命令

at 时间点
设定任务执行时间(任务在指定时间做相应操作)

ctrl + d 发起任务

命令演示:

在这里插入图片描述

at now+2min 延时2分钟(任务在当前时间延时1分钟后做出相应操作)

在这里插入图片描述

at - l 查看任务列表
at - c 任务编号 查看任务内容
at - r 任务编号 取消任务执行

at -l 查看任务列表

在这里插入图片描述

at -c 任务号 查看任务内容

在这里插入图片描述

at -r 任务号 删除延时任务(取消任务执行)

扫描二维码关注公众号,回复: 11641081 查看本文章

在这里插入图片描述

注意:当任务有输出时,输出会以邮件的形式发送给at任务的发起者

实验前提:安装相关软件

在这里插入图片描述

在这里插入图片描述

  • 开启postfix服务

在这里插入图片描述

mail -u 用户 查看用户发出的邮件

在这里插入图片描述

/var/spool/mail/用户名:存放着用户的所有邮件

在这里插入图片描述

1.2 at 任务的黑白名单

配置文件:
/etc/at.deny 系统中默认不存在,在此文件中出现的用户不能执行at命令
/etc/at.allow 系统中默认不存在,当文件出现时普通用户不能执行at命令
只有在名单中的用户可以,并且/etc/at.deny这个配置文件失效(at.allow优先级大于at.deny)

at.deny:黑名单

在这里插入图片描述

设置用户黑名单:

在这里插入图片描述

测试:

正常情况下:

在这里插入图片描述

加入黑名单后:

在这里插入图片描述

加入黑名单之后将无法使用at命令

在这里插入图片描述

at.allow:白名单

在这里插入图片描述

测试:

1. 白名单出现后普通用户无法使用at命令
只有在白名单中的用户可以使用命令

在这里插入图片描述

测试过程:

在这里插入图片描述

  1. 白名单出现的用户客户可以使用at命令

编辑/etc/at.allow:白名单配置文件

在这里插入图片描述

命令演示:

在这里插入图片描述

注意:当/etc/at.allow这个文件存在时只有在文件中的用户可以使用at命令,其他用户都不可以使用

二. 系统定时任务

2.1 crontab 时间表示方法:

* * * * * 每分钟执行
*/2 * * * * 每两分钟执行
*/2 09-17 * * * 早9-晚5每两分钟执行
*/2 */2 * * * 每隔两小时每两分钟执行
*/2 09-17 * * 5 每周周五早9-晚5每个两分钟执行
*/2 09-17 3,5 1 5 一月3号或五号和一月的每周五早9-晚5每隔2分种执行
第一个 * 表示分钟
第二个 * 表示小时
第三个 * 表示几号
第四个 * 表示月份
第五个 * 表示星期

crontab的服务:crond.service

开启crond服务之后定时任务才可以生效

在这里插入图片描述

当crond服务没有开启的时候用:
systemctl start crond.service或systemctl enable --now crond.service开启服务

2.2 crontab的用户及设定

crontab -e -u 建立用户级定时任务
crontab -l -u 查看定时任务内容
crontab -r -u 删除用户的定时任务

crontab -e -u
建立用户级定时任务

在这里插入图片描述

crontab -l -u
查看指定用户的定时任务内容

在这里插入图片描述

crontab -r -u
删除用户的定时任务

在这里插入图片描述

2.3 文件方式设定定时任务

系统级别的设定

编辑文件:vim /etc/cron.d/文件名

格式:* * * * * 用户名 执行动作

minute hour dayofmounth month dayofweek 用户名 执行动作

在这里插入图片描述

每分钟用root用户执行这个命令,当文件存在时将不会再建立。

2.4 crontab 的黑白名单

黑名单:

vim /etc/cron.deny

在这里插入图片描述

系统中默认存在的文件,在这个文件中出现的用户不能执行crontab这个命令

在这里插入图片描述

白名单:

vim /etc/cron.allow
只有在名单中的用户可以使用crontab这个命令,并且当这个文件出现时/etc/cron.deny(黑名单)失效

在这里插入图片描述

编辑白名单配置文件:

将zyj这个用户写到白名单当中

在这里插入图片描述

测试:

在这里插入图片描述

黑白名单都不会影响/etc/cron.d/目录中定时任务的发起和执行(系统级定时任务不会影响用户级定时任务的发起和执行)

三. 系统中临时文件的管理方式

临时文件的处理规则:/lib/tmpfiles.d/中会有系统中所有临时文件处理规则
自己建立规则时要规范注意:规则的文件格式为 (文件名 . conf)

systemd-tmpfiles - - create    规则存放的路径

根据建立的规则创建临时目录

systemd-tmpfiles - - clean    规则存放的路径

根据建立的规则对临时目录进行清理

编辑配置文件:建立创建目录的条件

vim /lib/tmpfiles.d/

在这里插入图片描述

编辑内容:创建规则

在这里插入图片描述

监控命令:watch -n 1 "ls -Rl /mnt/"

在这里插入图片描述

根据规则建立临时目录:

在这里插入图片描述

在临时目录中建立文件或目录

在这里插入图片描述

根据临时规则对临时目录进行清理:

临时文件达到了最短存放时间所以被清理

在这里插入图片描述

根据临时规则对临时目录进行清理:

没有到达最短存放规则所以目录不会被清理。

在这里插入图片描述

注意:当临时文件或者临时目录没有超过最短存放时间时临时文件或临时目录是不会被规则删除的。

猜你喜欢

转载自blog.csdn.net/X_pang/article/details/107975850