Linux大神进阶十一:Linux中定时任务,延时任务及临时文件的优化管理
1.理解
(1)定时任务:固定的时间进行相应的操作;
(2)延时任务:规定时间可以推迟进行相应的操作;
(3)临时任务:临时文件具有生命周期,不是清空的时候它就被立马情况,而是生命周期结束以后会被清空。
注意:定时任务是永久的,延时任务是一次性的;临时文件正在用的时候不能删除,有生命周期。
2.命令
功能 | 命令 | 注释 |
---|---|---|
1(at) | ||
1.1 (at定时任务) | ||
at定时实验1:① | at 时间 | ## 设定任务执行时间 |
② | at > 命令 | ##任务动作 |
③ | at> (ctl+d) | ##用ctrl+d发起任务 |
at定时实验2 | at -l | ##列出定时任务 |
at -c 1 | ## 查看序号为1的任务 | |
at -r 1 | ##删除序号为1的任务 | |
1.2 (at延时任务) | at now+1min | ##延时1分钟 |
at> rm -fr /mnt/* | ## 执行任务 | |
at> ctrl+d 开始延时任务计时 | ##开始延时任务计时 | |
at now+1min 命令 | ## 1分钟后执行命令 | |
1.3(at黑白名单,针对普通用户) | /etc/at.deny | ##黑名单,系统中默认存在,在此文件中出现的用户不能执行at |
/etc/at.allow | ##白名单,系统中默认不存在,在此文件中出现的普通用户能执行at,只有在名单中的用户可以,并且/etc/at.deny失效 , 注意:/etc/at.allow存在/etc/at.deny就失效,系统本来就没有/etc/at.allow,当这个文件建立之后即使是空的,其他普通用户也不能使用at命令了,此时只有超级用户是可以定时的;当student同时出现在allow和deny当中时,deny会失效,因此student可以使用at命令 | |
2. crontab | 执行定时任务的时候,crond.service这个服务必须开启,man 5 crontab可以查看这个命令的用法,cat /var/spool/cron/root定时任务是放在这个文件里面的删除任务的同时文件也就没有了,删除文件的同时任务也就没有了 | |
systemctl start crond.service | ## 打开crond.service服务 | |
2.1 (crontab定时任务) | ||
①具体格式 | crontab -e | ##表示编辑 |
crontab -u | ##表示用户 | |
crontab -l | ##表示列出 | |
crontab -r | ## 表示删除 | |
crontab -e -u root | ## 为root用户创建计划任务 | |
crontab -l -u root | ##列出root用户的计划任务 | |
crontab -r -u root | ##删除root用户的计划任务 | |
②时间表示法 | ## 注意:最后的星期几与日月是或的关系 | |
* * * * * | ## 每分钟 | |
*/2 * * * * | ## 每两分钟 | |
*/2 09-17 * * * | ##9-17每两分钟 | |
*/2 */2 * * * | ##每隔2小时每两分钟 | |
*/2 09-17 3,5 1 | ## 5月的每个周四以及三月1号 | |
*/2 09-17 * * 5 | ##每周周五早9晚5 | |
实验步骤:① | systemctl status crond.service,systemctl start crond.service | ##服务开启 |
② | crontab -e -u root | ##为root用户创建定时任务 |
③ | vim按时间格式进行定义 命令 | |
④ | crontab -l -u root | ##列出root用户的定时任务 |
⑤ | cat /var/spool/cron/root | ##这个文件里面可以看到定时任务 |
⑥ | crontab -r -u root | ## 删除root用户的定时任务 |
⑦ | rm -rf /var/spool/cron/root | ##删除定时任务 |
⑧ | cat /var/spool/cron/root | ## 在这个文件里面看不到定时任务 |
2.2 crontab的黑白名单(与at的黑白名单用法一模一样) | ||
(黑名单) | /etc/cron.deny | ##黑名单,系统中默认存在,在此文件中出现的用户不能执行crontab |
/etc/cron.allow | ##白名单,系统中默认不存在,在此文件中出现的普通用户能执行crontab,只有在名单中的用户可以,并且/etc/crontab.deny失效 , 注意:/etc/cron.allow存在/etc/at.deny就失效,系统本来就没有/etc/cron.allow,当这个文件建立之后即使是空的,其他普通用户也不能使用at命令了,此时只有超级用户是可以定时的;当student同时出现在allow和deny当中时,deny会失效,因此student可以使用cron命令 | |
3文件方式设定定时任务 | ##系统当中常见的任务在/etc/cron.d下面放着;cd /etc/cron.d;ls 查看系统的定时任务;每一个文件都可以用vim查看;在这个目录下我们可以直接写入定时文件 ,比如:vim westos;每次把所有的定时任务写在/mnt/下面,可以采用实时监控,也可以ls /mnt/查看有没有定时实现 | |
① | mkdir /westos | ##创建文件 |
② | cd 、westos | ## |
③ | vim test.sh | ##打开测试脚本 |
④ | #!/bin/bash>>>touch /mnt/file{1…3}>>>chmod +x test.sh | |
##编写测试脚本 | ||
⑤ | crontab -e -u root | ##打开定时格式文件 |
⑥ | * * * * * root run-parts /westos | ##编辑定时格式文件 |
⑦ | vim /etc/cron.d/file | ##打开定时任务操作文件 |
⑧ | * * * * * username action | ##编辑定时任务 |
⑨ | watch -n 1 “ls -lR /mnt/” | ##验证 |
4.临时文件的管理步骤 | ||
① | cd /usr/lib/tmpfiles.d | ##打开该目录 |
② | vim westos.conf | ##创建临时文件 |
③ | d /mnt/westos 777 root root 8s (这个目录是没有的) | ##编辑westos.conf内容,目录 目录名称 权限 所有人 所有组 生命周期 这个目录的属性,其中生命周期是目录下面的文件的生命周期,目录的作用是作用于文件 |
④ | systemd-tmpfiles --create /usr/lib/tmpfiles.d/* | ##自动建立/mnt/westos/ |
⑤ | touch /mnt/westos/file{1…3} | ## |
⑥ | watch -n 1 ls -lR /mnt/ | ##监控这个目录以及子目录和子文件 |
⑦ | systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* | ##清空/mnt/westos/这个目录下面的东西只有当目录下的文件的生命周期到了以后(周期到了也不会自动消失),clean才会清除它,但是rm -rf可以随时删除它 |
3.结果
Result1-2 at定时实验1-2
Result3at延时实验1-2
Result4 at黑白名单
Result5 crontab定时
Result6 文件方式设定定时任务
Result7临时文件管理