linux中系统延迟及定时机制
一.系统延时机制
目的:让管理者可以很自由的在任意时间来执行想执行的动作.
1) at命令
at 想执行动作的时间
> 动作
> <EOT>
ctrl+d ##开启此延时任务
at -l / atq ##查看发起的任务
atrm 任务号 ##撤销发起的任务
at -m ##让没有输出的命令有邮件,example:rm -fr 命令
-M ##即使有输出的任务也没有邮件
-c ##查看at命令执行的动作
-f ##把命令写在一个文件下,直接执行(不用交互)
-r 任务号 ##删除此任务号的任务
2)用户执行at命令的黑白名单
a.黑名单默认有
vim /etc/at.deny
eg: student ##student用户不能执行at命令
b.白名单需要自己建立
touch /etc/at.allow
注意:当白名单出现时,系统除了白名单中出现的用户和root用户。其他用户均不能执行at命令,也即黑名单失效
二.系统定时机制
目的:at延时机制不是永久性的,想要在固定的时间重复执行某个动作,就要用到定时机制
1)cron命令
crontab -e -u 用户名
分钟 小时 天 月 周 事件 ##在具体的某个时间系统定时执行某个动作
eg: 33 08 * * * rm -fr /mnt/* ##每天的8:33系统自动删除/mnt下的内容(*表示任意)
33 08-18 * * * rm -fr /mnt/* ##每天8点-18点的33分,系统自动删除/mnt下的内容
33 08 1,5 * * rm -fr /mnt/* ##每月的第1和5天的8:33,系统自动删除/mnt下的内容
33 08 * 6 * rm -fr /mnt/* ##6月每天的8:33系统自动删除/mnt下的内容
*/30 08-18 * 6 2-4 rm -fr /mnt/* ##6月的周二到周四的8-18点每隔半小时执行删除/mnt
crontab -l ##查看当前用户的任务
-r ##删除任务
-i ##询问一下再执行
2)文件方式定义crontab
a. vim /var/spool/cron/用户名称 ##以某个用户身份执行cron,文件名称必须和用户名称一样
分钟 小时 天 月 周 动作
b. vim /etc/cron.d/文件 ##设定多个用户身份执行cron
分钟 小时 天 月 周 用户 动作
eg: #!/bin/bash
cat >> /etc/cron .d/westos << EOF
* * * * * root touch /tmp/file1
* * * * * student touch /tmp/file2
EOF
也可以重定向到 /etc/cron.d/westos
eg: echo "* * * * * root rm -fr /mnt/*" > /etc/cron.d/westos
三.临时文件的管理
1)临时文件的配置文件
vim /usr/lib/tmpfiles.d/文件.conf ##自己建立文件,一定要以.conf结尾
2) systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##建立临时文件
touch /mnt/westos/file
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清除临时文件
cat /usr/lib/tmpfiles.d/westos.conf