1.at延时
监控watch -n 1 ls /mnt/ -lat now+5min ##五分钟后执行任务
at 时间
at>touch /mnt/file{1..10} ##需要执行的命令
at> 按ctrl+d
at -l #查看任务内容的编号
at -c 任务编号 #查看任务内容
at -r 任务编号 #删除任务内容
实验步骤:
[root@localhost ~]# at now+1min ##一分钟后
at> touch /mnt/file{1..5} ##建立文件
at> <EOT> ##ctrl+d 执行命令
job 1 at Tue Apr 24 04:25:00 2018 ##一分钟后是04:25:00运行
[root@localhost ~]# at -l
[root@localhost ~]# at 04:27 ##在04:27时刻
at> rm -fr /mnt/file{1..5} ##删除文件
at> <EOT> ##ctrl+d 执行命令
job 2 at Tue Apr 24 04:27:00 2018
[root@localhost ~]# at -l ##查看任务内容的编号
2 Tue Apr 24 04:27:00 2018 a root ##任务编号为2
[root@localhost ~]# at -c 2 ##查看任务编号的内容
#!/bin/sh
# atrun uid=0 gid=0
# mail root 0
vim /etc/at.allow ##白名单
分析:第一次我将linux用户写进黑名单,登录linux用户执行at命令时显示没有权限
第二次我没有删除黑名单里的linux用户依然将linux用户写进白名单,登录linux用户用at命令时就有权限执行
然而没有被我写进黑名单的westos用户也不能执行at命令
总结:白名单出现黑名单失效,除了root和白名单的人其余人都不能用at延迟
2.crontab 定时
方法一:
crontab -u root -e ##编写定时任务
分钟 小时 天 月 周 /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月,每周3和1和25号,8:00-17:00每分钟2次
crontab -u root -l ##查看任务
crontab -u root -r ##删除任务
cat /var/spool/cron/root ##查看文件是在那个文件下写的
10 03 * * * /bin/touch /mnt/file{1..3}
方法二:实验步骤
[root@foundation68 ~]# cd /etc/cron.d ##切换到cron.d
[root@foundation68 cron.d]# ls ##查看这个目录下的文件
0hourly raid-check sysstat
[root@foundation68 cron.d]# cat 0hourly ##查看写文件的格式
# 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]# touch westos
[root@foundation68 cron.d]# vim westos
* * * * * root touch /mnt/file{1..5} ##整分过1秒执行
vim /etc/cron.allow ##白名单
vim /etc/cron.deny ##黑名单
白名单出现黑名单失效,除了root和白名单的人其余人都不能用at延迟
###对临时文件的管理###
实验步骤:
监控: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
touch /mnt/westos/file1
systemd-tmpfiles --clean /usr/lib/tmpfiles.d/* ##删除临时文件