准备工作:
创建两个用户tony和pake
1.延迟任务
cd /mnt/
touch westos{1…5}
watch -n 1 ls /mnt/
at 05:00
at>rm fr /mnt/*
看监控发现05:00以后 确实删除/mnt/下的文件
at now+15min
at> poweroff ##一分后重启系统
ctrl d 延迟命令发起
at -l ##查看延迟任务有哪些
at -c ##延时任务内容
at -r 3 ##删除延迟任务2
禁止某个用户执行at命令
/etc/at.allow如果存在 只有在白名单生效,黑名单失效
/etc/at.deny at黑名单
把tony用户加到at黑名单
su - tony
at now+1min
You do not have permission to use at
##tony用户在at黑名单里无法使用at命令
su - pake
at now+1min
at> echo hellow
ctrl+d ##pake用户可以使用at命令
ll /etc/at.allow ##at白名单本来是不存在的
No such file or directory
vim /etc/at.allow ##建立at白名单
把tony用户加到at白名单
su - tony
at now+1min
at> echo hellow
ctrl+d ##tony用户可以使用at命令
su - pake
at now+1min
You do not have permission to use at
##pake用户在不在at白名单无法使用at命令
2.定时任务
crontab -u root -e ##root用户执行定时任务
内容:* * * * * rm -fr /mnt/* ##每隔一分钟删除一次/mnt/*
内容:/2 * * * * rm -fr /mnt/ ##每隔两分钟删除一次/mnt/*
内容:/2 07,16 * * * rm -fr /mnt/ ##早上7点和下午四点每隔两分钟删除一次/mnt/*
内容:/2 07-16 * * * rm -fr /mnt/ ##从早上7点到下午四点每隔两分钟删除一次/mnt/*
内容:/2 07-16 1,15 * 2 rm -fr /mnt/
##每个月的1号和15号和每个周二从早上7点到下午四点每隔两分钟删除一次/mnt/*
内容:/2 07-16 1,15 7 2 rm -fr /mnt/
##7月的1号和15号和每个周二从早上7点到下午四点每隔两分钟删除一次/mnt/*
crontab -u root -l ##查看root用户执行定时任务
crontab -u root -r ##删除root用户执行定时任务
root用户 cd /mnt touch file{a…d}
watch -n 1 ls /mnt
crontab -u root -e ##root用户执行定时任务
内容:* * * * * rm -fr /mnt/* ##每隔一分钟删除一次/mnt/*
watch -n 1 ls /mnt
crontab -u root -l
##查看root用户执行定时任务里边可以看到root用户的定时任务
crontab -u root -r ##删除root用户执行定时任务
crontab -u root -l ##查看root用户执行定时任务里边没有root用户的定时任务,因为定时任务被删除了
vim /etc/cron.deny ##定时任务命令黑名单
把tony用户加到黑名单里
su - tony
crontab -e
tony不被允许使用定时命令
把tony用户加到定时任务命令白名单
root用户下执行 crontab -u tony -e ##root用户创建tony用户的定时任务命令,tony用户无论在不在黑名单上都可以使用定时任务命令
touch /etc/cron.allow ##创建定时任务命令白名单
vim /etc/cron.allow ##编辑定时任务命令白名单
su - tony
crontal -e ##tony用户在定时任务命令白名单里,可以执行定时命令任务
系统级
cd /etc/cron.tab补齐
cd /etc/cron.d ##系统每分钟所做的
cd /etc/cron.daily ##系统每天所做的
cd /etc/cron.hourly ##系统每小时所做的
cd /etc/cron.monthly ##系统每月所做的
cd /etc/cron.weekly ##系统每周所做的
用户级
cd /etc/cron.d
vim tony
内容:* * * * * root rm -fr /mnt/*
注意指定root
测试:
touch /mnt/file{1…3}
watch -n 1 ls /mnt/
3.设置临时文件的生命周期
临时文件:不能随便被清理的
设置临时文件的生命周期
cd /usr/lib/tmpfiles.d
vim tmp.conf ##可以看到系统清理临时文件的格式
vim tony.conf ##设置自己的清理临时文件的配置文件
d /mnt/tony 777 root root 8s
格式 生成临时目录 权限 多久生效
systemd-tmpfiles --create /usr/lib/tmpfiles.d/*
mkdir /mnt/tony
touch /mnt/tony/file
watch -n 1 ls -lR /mnt/ ##递归监控/mnt目录下的目录或者文件
可以看到file
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
监控发现/mnt/westos/file被删除了
实现效果明显:
mkdir /mnt/tony
touch /mnt/tony/file
touch /mnt/tony/file2
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清除8秒之前临时文件
监控发现/mnt/tony/file被删除,而/mnt/westos/file2没有删除,file2因为不是8秒之前的建立的临时文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##再次清除8秒之前临时文件
过了一会,监控发现/mnt/tony/file2也被删除了,因为file2此刻已经是8s之前建立的临时文件