一、延迟任务
这里使用at命令:
at now+1min ##从现在起过1分钟
at 09:10 ##指定09:10执行任务
回车后输入任务命令
ctrl+d 任务发起
然后
at -l 加任务号 ###查看任务
-c 加任务号 ###查看任务详情
-r ###删除任务
##/etc/at.deny黑名单
假如westos在u黑名单里,则切换到westos后不能用at,而student可以
##/etc/at.allow白名单,一开始没有,需要创建
如果当我使用tuoch /etc/at.allow,在/etc/at.allow里的是白名单,出现后所有用户都再黑名单里,此时黑名单失效
试验:使用watch监控root用户的/mnt目录里的文件,先建立10个westos文件
任务被执行后任务就查看不到了:
vim /etc/at.deny
在里边编辑:
westos用户就不能正常使用at命令了,会有如下提醒:
既然有黑名单,也就有白名单,白名单不是一开始存在在/etc里面的,所以要先建立:
mkdir /etc/at.allow
注意:白名单建立后,黑名单相对于白名单就失效了。
二、定时任务
查看crond服务是否开启;
systemctl status crond.service
在student的/mnt目录下里建立westos{1..10}
crontab -u student -e ##以student的身份创建一个定时任务
打开以后:
* * * * *
分 时 (几)日 (几)月 周(几)
1,10(1和10)
1-30(1到30)
来编辑要执行的具体日期,并在后面写上具体的任务,比如:
* * * * * rm -rf /mnt/* ##每隔三分钟删除/mnt下的全部
执行的任务存放在/var/spool/cron/student(student是建立任务的用户)
使用
cat /var/spool/cron/student
可以看到:
crontab -u student -l ##查看任务
crontab -u student -r ##删除任务
##/etc/cron.deny黑名单
##/etc/cron.allow白名单,同样需要创建,创建后黑名单失效,不在白名单里的用户全部使用不了crontab的命令
但是在root下使用crontab -u student -e 仍然可以编辑任务命令
删除/etc/cron.allow就可以正常使用黑名单了
三、系统级定时的设置
系统定时设置在/etc/cron.d/里面,
在这里创建一个westos 比如:
vim /etc/cron.d/westos
打开后编辑:
* * * * * root rm -rf /mnt/*
不想使用westos里的定时功能删除westos就可以
cat westos可以查看这个任务详情;
anacron可以检测某命令在系统关机后没来得及执行,使用这个命令可以在开机后执行一次。
四、临时文件的定时清理
临时文件不能随便清理,要保证被清理的是不需要的
所以设置了生存周期:
在/usr/lib/tmpfiles.d/
建立westos:vim westos.conf
在里面编辑要执行的命令,比如:
d /mnt/westos 777 root root 8s ##每隔8s删除一次/mnt/下的westos文件
使用watch -n 1 “ls -lR /mnt”
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##创建一个westos文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清空westos里的内容
从监控上看到:
先提前建立文件:
touch /mnt/westos/file
使用下面的命令执行8s清除westos下的内容:
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
可以从监控看到文件没有了。
使用cat /usr/lib/tmpfiles.d/westos.conf可以看到命令详细情况。