一、定时任务:永久
延时任务:一次性
监控命令 watch -n 1 ls -lR /mnt (l ==longer ;R==递归)
二、延时任务命令:at(存在内存中,关机清空)
1.at hh:mm | at now+1min
at> ...
at> <crtl+d> 开始执行
at -l ##列出所有延时任务
at -c job 号 ####查看某个任务的详细信息
at -r job 号 ####取消某个任务操作:
[root@localhost ~]# at now+1min ##一分钟后
at> touch /mnt/file{1..5} ##建立文件
at> <EOT> ##ctrl+d 执行命令
job 1 at Tue Oct 23 09:41:00 2018 ##一分钟后是09:41:00运行
[root@localhost ~]# at -l
[root@localhost ~]# at 09:42 ##在09:43时刻
at> rm -fr /mnt/file{1..5} ##删除文件
at> <EOT> ##ctrl+d 执行命令
job 2 at Tue Oct 23 09:43:00 2018
[root@localhost ~]# at -l ##查看任务内容的编号
2 Tue Oct 23 09:43:00 2018 a root
[root@localhost ~]# at -c 2 ##查看任务详细内容
#!/bin/sh
# atrun uid=0 gid=0
# mail root 0[root@localhost ~]# at -r 2 ##取消job2任务
2.黑名单/etc/at.deny:本身存在。加入谁,谁不可执行;其他人都可以
白名单/etc/at.allow:本身不存在,有了白名单,则黑名单失效。加了谁,只有他和root可以执行;其他都不可以
测试:黑名单中加linux
白名单加linux,黑名单失效,只有白名单和root可做延时任务
三、定时任务
1.服务:chronyd.service(开启)
2.用户级定时任务
crontab -e -u 用户 ###添加某用户的定时任务
分钟 小时 天 月 周 /bin/touch /mnt/file{1..3} ##执行命令地址
* * * * * ##每月每周每天每小时每分钟
*/2 * * * * ##每月每周每天每小时每分钟2次
*/2 08-17 * * * ##每月每周每天8:00-17:00每分钟2次
*/2 08-17 1,15 * * ##每月,每周,1和25号,8:00-17:00每分钟2次
*/2 08-17 1,15 3-5 * ##3到5月,每周,1和25号,8:00-17:00每分钟2次
*/2 08-17 1,15 3-5 3 ##3到5月的1和25号以及每周3,8:00-17:00每分钟2次
crontab -l ###列出定时任务
crontab -r -u 用户 ###删除该用户的所有定时任务
3.任务存放地址:/var/spool/cron/用户
4.黑名单/etc/cron.deny:本身存在。加入谁,谁不可执行;其他人都可以
白名单/etc/cron.allow:本身不存在,有了白名单,则黑名单失效。加了谁,只有他和root可以执行;其他都不可以
5.系统级定时任务
vim /etc/cron.d/xxx
* * * * * 用户 命令
cat /etc/cron.d/xxx 查看 crontab -l看不了
cat /etc/crontab 看编辑格式
/etc/cron.d/0hourly 里设定了/etc/cron.hourly里的东西每整点执行
操作:
[root@foundation68 ~]# cd /etc/cron.d ##切换到cron.d
[root@foundation68 cron.d]# ls ##查看这个目录下的文件
0hourly raid-check sysstat
[root@foundation68 cron.d]# cat 0hourly ##设定了/etc/cron.hourly里的东西每整点执行
# Run the hourly jobs
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
01 * * * * root run-parts /etc/cron.hourly ##编写这个格式的命令
[root@foundation68 cron.d]# vim westos * * * * * root touch /mnt/file{1..5} ##整分过1秒执行
四、临时文件管理(linux系统不卡顿原因)
1.系统会每天零点过一分时对未使用临时文件进行清理(--clean命令)。当电脑关闭时,定时任务不执行,在开机时,crond.service 服务开启状态里面的anaron服务对未执行的定时任务立即执行
2.正在使用临时文件存放位置:/usr/lib/tmpfiles.d
它里面的.conf文件里记录着临时文件生成策略:
类型 绝对路径 权限 所有人 所有组 子文件在系统存活时间
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ###读取/usr/lib/tmpfiles.d/下所有配置文件的要求,按照要求执行
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ###读取/usr/lib/tmpfiles.d/下所有配置文件的要求,按照要求删除临时文件目录中的过期文件
注:以上命令也是定时任务
实验步骤:
监控:watch -n 1 ls -R /mnt/ -l
cd /usr/lib/tmpfiles.d
vim westos.conf ##.conf是临时文件后缀
d /mnt/westos 1777 root root 5s ##5秒后创建或删除
systemd-tmpfiles --create /usr/lib/tmpfiles.d/* ##创建临时文件
touch /mnt/westos/file ##5s前创建
touch /mnt/westos/file1 ##5s中创建
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##删除临时文件ls /mnt/westos ##只有file1
注意:配置文件中生成的文件夹不会被删除,但是文件夹内的文件会被清空