文章目录
- 设置定时与延时任务的意义
- 使用at实现延时任务
- at 命令的管理
- 延时任务的黑白名单
- 使用at设置定时任务
- 使用crontab永久设置定时任务
- crontab下的黑白名单
- crontab下临时文件的设置
- 临时文件是什么
- 管理系统中的临时文件
设置定时与延时任务的意义
- 如果我们需要定时执行一些周期性重复性的任务,我们就会用到定时执行任务功能来帮我们自动执行每天、每周等周期性重复性的任务而不需要人为干预即可实现。
- 延时任务是指设置某个时间,在某个时间之后的的某个时间点上执行某个任务。
- linux系统的定时任务就像我们在日常生活中使用的闹钟一样,一到固定的时间就会有响铃
- linux系统的延时任务就像闹钟响了之后不想起床,延迟几分钟再响
注意:
定时任务是永久的,延时任务是暂时的、一次性的。
使用at实现延时任务
at now+1min 按键回车
at> touch file{1..3}
at>ctrl+d(按)
图示:
1.
首先使用watch -n 1 ls . 来监视 desktop主机的桌面文件
2.执行
at 命令的管理
at -l #查看当前系统有几个延时任务
at -c 3 #查看3任务的详细情
at -r 3 #删除该任务
图示:
-c
-l -r
延时任务的黑白名单
vim /etc/at.deny #编辑at配置文件,指定哪些黑名单用户不能执行at操作
vim /etc/at.allow #白名单出现,黑名单失效,只有白名单用户和超户才能执行at操作
2.
注意:
- at.allow默认不存在 需要手动touch
- 只要白名单被建立 ,里面不添加用户时,其他用户都不能进行岩石任务,默认root可以执行。
使用at设置定时任务
at 21:36 #设置任务执行时间
at> touch file{1..4}
at>ctrl+d(按)
图示:
采用watch -n 1 ls -l /mnt/监控命令,监控该过程
1.
2.
使用crontab永久设置定时任务
1. crontab命令的格式
crontab -e -u root #为root用户创建定时任务
crontab -l -u root #列出root用户的定时任务
crontab -r -u root #删除root用户的定时任务
2.crontab命令的参数
e #编辑(editor)
u #用户(user)
l #列出(list)
r #删除(remove)
3.crontab的时间表示方式
分钟(0-60) | 小时(0-23) | 天数(0-31) | 月数(0-13) | 周几(0-7) | 含义 |
* | * | * | * | * | 每一天的每一分钟 |
* | 08-17 | * | * | * | 每天的八点到17点的每一分钟 |
*/2 | * | * | * | * | 每一天的每两分钟 |
*/2 | 08-17 | 1,15 | * | 3 | 每隔两分钟在1号和15号以及周三的早上8点到下午17点 |
* | 08-17 | 1,15 | 3-5 | 3 | 每一分钟在3-5月的1号和15号以及每个周三的早上8点到下午17点 |
4.图示:
1.查看chrond服务是否开启
2.
执行命令发现桌面上的东西每天每隔两分钟就会被删除
注意:
- 执行定时任务的时候,crond.service服务必须开启
- man 5 crontab可以查看这个命令的用法
- 定时任务是放cat /var/spool/cron/root文件里面的
- 删除任务的同时文件就没了,删除文件的同时任务也就没有了
crontab下的黑白名单
/etc/cron.deny #默认存在
/etc/cron.allow #默认不存在
用法同at下的黑白名单
crontab下临时文件的设置
临时文件是什么
- 系统中的服务在正常运行时会产生临时文件,在系统中
/usr/lib/tmpfiles.d/
表示服务的临时文件存在位置。
2. 临时文件具有生命周期,当它的生命周期结束,才能被清理,(死了之后)被删除。
管理系统中的临时文件
在这里,我们先模拟生成一个临时文件,再对它进行操作。
cd /usr/lib/tmpfiles.d/ #此目录下文件都是.conf结尾的文件
vim westos.conf #创建临时文件
在文件里输入以下内容
d /mnt/westos 1777 root root 8s (这个文件此时是没有的,设置这个文件的生命周期为8s)
可以设置一个监控,监控mnt目录
watch -n 1 ls lR /mnt/
systemd-tmpfiles --create /usr/lib/tmpfiles.d/ * 也可以不用*,指定某个名字
touch /mnt/westos/file
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/ * #只有当时间到了才会清除/mnt/westos
注意:
- 只有clean了之后,才会在/mnt/westos/file的生命周期结束后,清除此文件。不clean也不会清除。
- rm -fr /mnt/westos/file可以随时删除文件。