Linux下的系统延迟、定时任务及临时文件的清理
一、系统延时任务
1、格式:at 时间
-l 查看有无延时任务及其标号,当延时任务执行结束后即消失查看不到
-c 标号 查看该标号延时任务的具体内容
-r 标号 删除该标号的延时任务
如图,at now+1min 即从现在开始,1分钟后执行该任务
>touch file{1..3}
>ctrl+d(键盘按,而不是输入)
at -r删除标号为2 的延时任务后,at -l 查看即无该延时任务;延时任务执行完后,at -l 查看也无延时任务
2、at命令的相关设置
(1)黑名单
/etc/at.deny默认存在,加入用户后,该用户不能执行at命令
(2)白名单
默认无白名单,建立/etc/at.allow白名单后,黑名单失效,除了root用户,其他人都不能执行at命令
加入用户后,该用户也可以执行at命令
1、格式
crontab -u root -e #以超级用户身份添加定时任务(-u指定用户)
* * * * *
分钟 小时 天 月 周
0-59 0-23 0-31 0-12 0-7(0和7都表示周天)
如图,表示每两分钟在/mnt下建立file1到file5这五个文件,即建立后的每分钟都刷新一次时间戳
crontab -u root -l #查看定时任务
cat /var/spool/cron/root (用户级)root用户定时任务的文件存放路径/var/spool/cron/root
因此,执行该命令也可查看定时任务
crontab -u root -r #删除定时任务
注:延时任务执行后查看消失,定时任务执行后查看仍存在,等待下一次执行
2、设置
(1)黑名单
vim /etc/cron.deny默认存在
如:将student加入黑名单
su - student
crontab -e 无法添加定时任务
但是!!!
超级用户执行crontab -u student -e可以执行,相当于以root身份指定student执行crontab命令
(2)白名单
vim /etc/cron.allow(vim 不存在的文件,即建立该文件)
默认不存在,白名单存在后黑名单失效
3、文件形式建立定时任务
超级用户在/etc中添加的是系统级的定时任务
cd /etc/cron.d #切换目录,自定义
vim yee #建立文件
crontab -u root -l #查看定时任务
(显示no crontab for root,因为该种方式添加的定时任务是系统级的,而crontab -u root -l查看的是用户级的)
如添加* * * * * root touch /mnt/file{1..5}即以root用户身份,每分钟建立file{1..5}这7个文件
三、系统临时文件的清理
cd /usr/lib/tmpfiles.d #切换目录
vim yee.conf #建立.conf文件
如图,d /mnt/yee 1777 root root 15s
类型 名字 权限 用户 用户组 时间
systemd-tmpfiles --creat /usr/lib/tmpfiles.d/* #执行.conf文件,建立/mnt/yee目录,此目录中为临时文件
touch /mnt/yee/file
touch /mnt/yee/file1
touch /mnt/yee/file2 #在/mnt/yee目录下建立临时文件
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* #删除超过设定时间限制的临时文件
如下图,第一次执行systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* 时,删除掉了超过15s的file1,第二次执行时,file2和file3均超过时间,被删除。(右上角是系统时间显示)
做该实验时 watch -n 1 ls -R /mnt -l监控,-R可以监控/mnt下的子目录