Linux下的系统延迟、定时任务及临时文件的清理

一、系统延时任务
1、格式:at  时间
-l 查看有无延时任务及其标号,当延时任务执行结束后即消失查看不到
-c 标号 查看该标号延时任务的具体内容
-r 标号 删除该标号的延时任务

Linux下的系统延迟、定时任务及临时文件的清理

如图,at now+1min 即从现在开始,1分钟后执行该任务
>touch  file{1..3}
>ctrl+d(键盘按,而不是输入)

Linux下的系统延迟、定时任务及临时文件的清理
at -r删除标号为2 的延时任务后,at -l 查看即无该延时任务;延时任务执行完后,at -l 查看也无延时任务

2、at命令的相关设置
(1)黑名单
/etc/at.deny默认存在,加入用户后,该用户不能执行at命令

Linux下的系统延迟、定时任务及临时文件的清理
(2)白名单
默认无白名单,建立/etc/at.allow白名单后,黑名单失效,除了root用户,其他人都不能执行at命令
加入用户后,该用户也可以执行at命令

Linux下的系统延迟、定时任务及临时文件的清理

二、系统定时任务

1、格式
  crontab -u root -e   #以超级用户身份添加定时任务(-u指定用户)
   *         *         *          *          *
  分钟      小时       天          月         周

  0-59      0-23       0-31        0-12     0-7(0和7都表示周天) 

Linux下的系统延迟、定时任务及临时文件的清理

如图,表示每两分钟在/mnt下建立file1到file5这五个文件,即建立后的每分钟都刷新一次时间戳

Linux下的系统延迟、定时任务及临时文件的清理

Linux下的系统延迟、定时任务及临时文件的清理

  crontab -u root -l   #查看定时任务
      cat /var/spool/cron/root   (用户级)root用户定时任务的文件存放路径/var/spool/cron/root
      因此,执行该命令也可查看定时任务
  crontab -u root -r   #删除定时任务

Linux下的系统延迟、定时任务及临时文件的清理

Linux下的系统延迟、定时任务及临时文件的清理

注:延时任务执行后查看消失,定时任务执行后查看仍存在,等待下一次执行
2、设置
(1)黑名单
vim /etc/cron.deny默认存在
如:将student加入黑名单
su - student
crontab -e 无法添加定时任务
但是!!!

超级用户执行crontab -u student -e可以执行,相当于以root身份指定student执行crontab命令

Linux下的系统延迟、定时任务及临时文件的清理

(2)白名单
vim /etc/cron.allow(vim 不存在的文件,即建立该文件)
默认不存在,白名单存在后黑名单失效
Linux下的系统延迟、定时任务及临时文件的清理
3、文件形式建立定时任务

超级用户在/etc中添加的是系统级的定时任务

cd /etc/cron.d   #切换目录,自定义

vim yee   #建立文件
crontab -u root -l   #查看定时任务

(显示no crontab for root,因为该种方式添加的定时任务是系统级的,而crontab -u root -l查看的是用户级的Linux下的系统延迟、定时任务及临时文件的清理

如添加* * * * * root touch /mnt/file{1..5}即以root用户身份,每分钟建立file{1..5}这7个文件

Linux下的系统延迟、定时任务及临时文件的清理

三、系统临时文件的清理

 cd /usr/lib/tmpfiles.d   #切换目录

 vim yee.conf   #建立.conf文件

Linux下的系统延迟、定时任务及临时文件的清理

Linux下的系统延迟、定时任务及临时文件的清理

 如图,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/*   #删除超过设定时间限制的临时文件

Linux下的系统延迟、定时任务及临时文件的清理

如下图,第一次执行systemd-tmpfiles  --clean /usr/lib/tmpfiles.d/* 时,删除掉了超过15s的file1,第二次执行时,file2和file3均超过时间,被删除。(右上角是系统时间显示)

Linux下的系统延迟、定时任务及临时文件的清理

Linux下的系统延迟、定时任务及临时文件的清理

做该实验时 watch -n 1 ls -R /mnt -l监控,-R可以监控/mnt下的子目录