系统延时任务
系统延时性任务是一次性的,是指在规定的某个时间去执行该任务,只执行一次
1.at命令设定延时任务
at 9:10 ##设定动作执行时间为9:10分
at> 动作内容 ##任务内容
at> ctrl+D ## ctrl+D发起任务
at -l ##查看任务列表
at -c 任务号 ##查看指定任务号的内容
at -r 任务号 ##取消任务
at nou+1imn(时间) ##对于任务发起的时间 延时1min执行任务
如果我们要在21:26在桌面上建立10个文件 但是现在的时间是21:24 我们可以用at命令去设定一个延时任务
at -l 可以查看当前系统的任务列表
查看指定任务信息
当到预定时间时我们可以发现桌面上自动建立了十个文件
注意:当任务在字符设备上有输出时,输出会以邮件的形式发送给at任务的发起者
2.邮件的查看:
mail -u root ##查看root用户的邮件
1 ##查看第一封邮件
q ##退出
> /var/spool/mail/root ##清空邮件信息
现在我们来演示当任务有输出时 会给任务的发起者发送邮件这一情况 设定任务在21:36打印出hello 在时间未到时我们查看root用户邮件没有内容
当时间到了之后我们再次查看该用户的邮件信息 可以发现多了一个邮件 输入1查看邮件1的信息
3.at任务的黑白名单
/etc/at.deny ##黑名单
/etc/at.allow ##白名单
注意:当白名单存在时黑名单不会被读取,只有白名单里的用户可以使用at 命令;当两者都存在内容为空时,只有超级用户可以使用at命令。
系统中原本是不存在白名单的 如果想要使用白名单可以自己建立 touch /etc/at.allow(是一个文件)
将westos用户加入黑名单后 可以发现该用户不能使用at 命令 其他用户可以使用该命令
当建立了白名单 并在白名单加入westos用户 黑名单不再起作用 westos可以使用at命令
系统定时任务
1 .crontab时间表示方式
分钟 小时(24) 日 月 周
----- --------------
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)
'/' ##代表间隔
上述各行的解释:
- 每分钟执行一次该命令
- 每两分钟执行一次该命令
- 从早上9点到下午5点每两分钟执行一次该命令
- 每隔两小时 每两分钟执行一次该任务
- 1月的3号和5号 以及1月的每周五 从早上9点到下午5点每两分钟执行一次该任务
- 每周五从早上9点到下午5点每两分钟执行一次该任务
2.系统控制crontab的服务
crond.service ##当程序开启时 定时任务生效
systemctl stop crond ##关闭定时任务
3.crontab命令的使用
crontab -e -u 用户名 ##执行该命令会在空白文件写入指定用户具体的定时任务
crontab -l -u 用户名 ##查看指定用户的任务列表
crontab -r -u 用户名 ##删除指定用户的所有任务
写入指定用户root的具体定时任务 并查看root用户的定时任务
上述任务是每分钟执行一次清空root用户桌面上的文件命令 我们可以先在root用户桌面上建立十个文件 观察是否可以清空
观察到 当整点时(每分钟 以下一次整点为一分钟计算)清空了桌面上的文件
再次建立十个文件 取消该任务 发现整点后该文件并未删除
再次设定该任务但是关闭了crond服务 发现该任务并未执行
4.crontab的黑白名单
/etc/cron/deny
/etc/cron.allow
注意:类同at命令
在白名单不存在的情况下 添加到黑名单的用户不能执行该命令
-
文件方式设定定时任务
vim /etc/cron.d/file(xxx)
* * * * * 用户名 任务
* * * * * root rm -fr /mnt/*
以文件的方式设定root用户的任务
在root用户桌面上建立三个文件 因为文件名始终是123 没有改变 所以每到整点 可以发现文件图标 闪动一次
为什么说是以文件的方式设定定时任务
可以看到如图存在每天执行任务的文件 每小时执行任务的文件等 在以文件的方式设定好定时任务之后 可以在相应的类型文件中找到该任务文件
系统中临时文件的管理方式
vim /usr/lib/tmpfiles.d/xxx.conf
d /xx/xx 777 root root 10s
文件类型 文件路径 文件权限 所有人 所有组 多长时间可以更改一次
systemd-tmpfiles --create /usr/lib/tmpfiles.d/xxx.conf
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/xxx.conf
(1)vim /usr/lib/tmpfiles.d/westos.conf
配置新的临时文件 设置其类型为目录 路径为/mnt/westos 权限为777 用户组和用户为root 有效期10s(10s内不能清除)
(2)
watch -n 1 'ls -lR /mnt/' ##监控该目录和该目录下的子目录 子文件
systemd-tmpfiles --create /usr/lib/tmpfiles.d/westos.conf ##创建满权限目录
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/westos.conf
监控 并创建不存在的目录/mnt/westos
在目录下建立文件 发现当没有到设定时间不能清除该文件
10s过后再次清除该文件发现可以清除(为了查看清除效果 不使用rm命令 rm命令可以删除任意 不到时间也可以删除)
临时文件具有生命周期 只有到了设定的时间才可以删除