系统中的定时任务与延时任务:
一.延时任务
1.延时任务是我们规定在几点或者在多久之后让系统执行的某一任务
设置延时任务的步骤:
at time(时间)
dosomething(具体的任务)
ctrl+d(执行该延时任务)
(左图是设置延时任务,设置在07:11的时候删除/mnt中的新建文件,右图是延时任务完成)
2.延时任务的黑名单和白名单
/etc/at.deny 是延时任务的黑名单,放在这个文件中的用户不能设置延时任务
在/etc下白名单是不存在的,需要我们自己建立,当建立白名单/etc/at/allow后,默认所有的用户都加入黑名单中,除了 写在白名单中指定的用户。
放在黑名单中的用户不能设置延时任务
未放在黑名单中的用户可以设置延时任务
二.定时任务
(一)定时任务的设置步骤:
1. 定时任务可以设定在哪一天哪一小时等循环地做某一件事情
2.我们可以用man 5 crontab来查看其具体用法
3.crontab -u root -e 表示在超级用户身份下设置一个定时任务
在文件中写入时间,格式为* * * * *分别表示分钟 小时 天 月 星期
4.crontab -u root -l 表示显示系统中的定时任务
5.cat /var/spool/cron/root
6.crontab -u root -r 表示删除系统中所有的定时任务
(二)定时任务的黑名单和白名单问题:
/etc/cron.deny是定时任务中的黑名单,放在这个文件中的用户不能设置定时任务 vim /etc/cron.deny
在/etc/cron.allow是白名单,白名单建立时,默认所有用户被放在黑名单中,只有白名单中的用户可以设置定时任务。
vim /etc/cron.allow
(三)另外一种设置定时任务的方法:
1.显示/etc/cron.有哪些目录(按两次Tab键)
显示有cron.d/ cron.daily/ cron.hourly/ cron.mouthly/ cron.weekly/
分别表示自定义时间执行,每天,每小时,每月,每周执行一次
2.cd /etc/cron.d
vim linux
* * * * * root touch /mnt/file{1..3}
表示每分钟执行一次在/mnt底下建立file{1..3}
我们可以用watch命令监控/mnt,观察是否在每分钟的开始建立文件file{1..3}
需要我们注意的是:这两种方式都可以设置定时任务,不同的是,crontab形式设置的 是用户级别的定时任务,而在/etc/cron下是系统(超级用户)级别的定时任务。
三.定时任务在清除系统临时文件中的应用
为了防止系统中的资源被浪费,系统中有清理临时任务的机制,就是将一些滞留时间超过规定时间的文件清理
而清理临时任务用到的就是定时任务
1.首先我们用两个监控命令watch -n 1 ls /mnt -l
watch -n 1 ls -R /mnt -l
2.系统中清除临时文件的文件都在/lib/tmpfiles中,我们进入该目录下
3.在这里边建立自己的用来清除临时文件的文件
vim linux.conf
d /mnt/linux 1777 root root 10s ( d表示linux.conf是一个目录 给其1777的权限 10s表示在/mnt/linux
下创建超过10s的文件,在定时任务开启后,这些文件将被删除)
cat linux.conf
4.systemd-tmpfiles --creat /usr/lib/tmpfiles.d/*
touch /mnt/linux/file 在/mnt/linux底下创建file文件
5.systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*
如果这条命令在建立file以后10s后执行,则/mnt底下的file会直接被清除
如果这条命令在建立file以后10s内执行,则/mnt底下的file会在其建立10s后被清除
这就是系统中清除缓存文件的原理。