Linux系统下的延时、定时任务和临时文件的管理
at 时间
at now+1min ##延迟1min执行任务
监控命令:?watch -n 1 ls? /mnt/
执行以下命令
监控窗口的效果:
at -l ##查看延迟的任务
at -c 任务编号? ##查看延迟任务的具体内容
at -r?任务编号 ##删除延迟任务
/etc/at.deny ##at命令的黑名单,在此名单出现的用户不能执行at命令
在此文件中写入linux用户
无法执行延时命令
/etc/at.allow ##用户白名单,系统默认不存在,需用户建立,白名单一旦出现,黑名单失效,系统所有用户默认不能执行at命令,只有在名单中的用户可以使用at命令
在白名单中写入westos用户
只有白名单用户可以执行at命令
当白名单建立黑名单失效
注意:系统黑名单和白名单都不限制超级用户
定时任务crontab之所以可以发起永久定时任务,由于crond服务监控定时任务,每分钟做任务扫描。
在发起定时任务前,保证crond服务处于active状态
发起方式一
crontab -e? ##编辑当前用户的定时任务
crontab -r? ##取消当前用户的所有定时任务
crontab -l? ##查看当前用户的所有定时任务
crontab -u username -e ##编辑username的定时任务
crontab? -u username -r ##取消username的所有定时任务
crontab -u username -l? ##查看username的所有定时任务
* * *? *? * 动作
分 时? 天? 月? 周? 动作
*/2代表每隔两个时家单位执行一次
举例:定时删除/mnt/下的所有文件
实验效果:
/var/spool/cron/username? ##编辑该文件,永久定时任务,实质所有定时任务存储在该文件中
ls /var/spool/cron ##查看当前定时任务的发起人
若删除/var/spool/cron/username,则删除当前username的定时任务
发起方式二
<1>/var/spool/mail/root? ##用户级的定时任务
* * *? *? * 动作
分 时? 天? 月?
周? 动作
<2>/etc/cron.xxx ##系统级的定时任务
注意:系统级的定时文件不能用crontab -l(用户级)查看
cron.d/##用户自定义文件
cron.daily/##系统每天执行一次?
cron.hourly/##系统每小时执行一次? cron.monthly/##系统每月执行一次
cron.weekly/##系统每周执行一次
vim /etc/cron.d/westos ##用户自定义定时文件
* * * * * root rm -fr /mnt/* ##每秒清除/mnt的内容
* *? * * ? * 用户 ? 动作 ##系统级自定义文件必须指定用户
分 时 天 月 周 用户 ?
动作
##crontab命令执行权力设定##
/etc/cron.deny ##用户黑名单,在此名单的用户不能执行crontab命令
/etc/cron.allow? ##用户白名单,名单默认不存在,但名单一出现,黑名单失效,系统所有用户默认不能执行
crontab,只有在白名单中的用户才能执行
系统中服务在正常运行时会产生临时文件
/usr/lib/tmpfiles.d/xxx.conf ##系统临时文件的配置
文件类型? 文件名称 文件权限 所有人 所有组 文件存在时间
d /mnt/tmp 1777 root root 8s
文件存活时间超过8s才可以被删除
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##执行临时文件配置,建立了westos目录
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##清理临时文件
文件建立的时间如果没有超过10s则不会被删除