一、定时任务和延迟任务概述
通俗的讲,定时任务和延迟任务就好比一个闹钟。
定时任务: 定时任务就是我们定的闹钟,一到固定时间闹钟就会执行相应动作。
延迟任务: 延迟任务就是一个慵懒的人,闹钟响后不想起,所以定一个延迟的任务。
注意:定时是永久的,而延迟是一次性的
二、利用at命令设置定时任务和延迟任务
1. at相关命令如下所示:
at + 时间 | 设定任务执行时间 |
---|---|
at -l | 查看任务列表 |
at -c 任务号 | 查看任务内容 |
at -r 任务号 | 取消任务执行 |
at now+1min | 延迟一分钟 |
ctrl+D | 发起任务 |
2. 实验监控
watch -n 1 ls -l
3. at任务的定时与延迟
- 当时间没有到指定的时间时,任务不执行,监控处没有任务,如下图所示:
- 当时间到指定时间时,任务执行,并进行监控,如下图所示:
- 任务的查看与删除,如下图所示:
注意:当任务执行过后不可以再查看任务列表,此时的任务列表为空,如下图所示:
注意:当任务有输出时,输出会以邮件的形式发送给at任务的发起者,如下所示:
三、at命令的黑白名单
at任务的黑名单
- 当我们不设定黑名单时,切换用户为student时,发现student可以执行at命令,如下图所示:
- 设定黑名单,如下所示:
- 当我们切换到student用户是,报错不允许使用at定时,实验结果如下:
at任务白名单
- 设定at任务白名单,如下图所示:
- 当我们设置白名单以后,只有在白名单里的人才会设定at任务,如下图所示:
当黑白名单都存在时,如下图所示:
由上图可知黑白名单都有student用户时,student可以执行at命令
注意:当白名单存在时,黑名单不生效
四、系统定时任务crontab
1. 首先要开启控制crontab的服务,只有crontab当服务开启,任务才会生效
2. 用man 命令查看crontab的时间表示方式如下所示:
每个*代表的含义如下:
* | * | * | * | * |
---|---|---|---|---|
分 | 时 | 天 | 月 | 周 |
常用的基本时间表示方式如下所示:
* * * * * | 每分钟 |
---|---|
*/2 * * * * | 每两分钟 |
*/2 09-17 * * * | 早7晚5每两分钟 |
*/2 */2 * * * | 每隔2小时每两分钟 |
*/2 09-17 3,5 1 5 | 1月的3号和5号,每周5,朝9晚5,每隔2分钟 |
*/2 09-17 * * 5 | 每周周五早9晚5 |
注意:
(1) " /" 表示每隔多久
(2) “,” 表示几和几
(3) “-” 表示从到什么到什么
3. crontab命令
crontab -u root -e | 编辑定时任务 |
---|---|
crontab -u root -l | 查看root用户下的定时任务列表 |
crontab -u root -r | 取消定时任务 |
配置文件记录着此定时任务,当删除定时任务后,配置文件也自动删除,如下所示:
4. 文件方式设置定时任务
<1> 查看文件该配置文件中包含的基本信息
<2> 具体实验如下:
在test.sh文件中写入以下内容:
给脚本可执行权限,发现建立了3个文件,如下所示:
上下文件进行对比,发现时间更新,如下图所示:
五、crontab的黑白名单
crontab任务的黑名单
- 当我们不设定黑名单时,切换用户为student时,发现student可以执行crontab命令,如下图所示:
- 设定黑名单,如下所示:
- 当我们切换到student用户是,报错不允许使用crontab定时,实验结果如下:
crontab任务的白名单
当黑白名单都存在时,如下图所示:
注意: crontab定时和at定时一样,当黑白名单都存在时,黑名单不生效
六、系统中临时文件的管理
1 . 生命周期的作用:
由于系统中正在使用的临时文件不能被删除,所以我们需要给文件设定一个周期,当文件的时间超过这个周期,就可以被清理掉。此时这个周期我们将它称之为生命周期。
2. 具体实验如下:
<1> 对实验进行命令监控,如下所示:
<2> 编辑配置文件,如下所示:
<3> 创建文件,并在目录中建立文件,如下图所示:
<4> 清理目录下的文件,如下图所示:
此时发现文件并没有被清理,因为文件在生命周期以内,所以不能被清理,当文件的时间超生命周期以后发现文件被清理,如下图所示:
如上图所示,此时文件已被清理