一、系统延时任务
使用at 命令发起的延时任务都是一次性的
基本用法:
1. at time #指定命令执行的时间
2. at -l #查看当前任务
其中,最前面显示的数字为延时任务的编号
3. at -d 任务编号 #取消还未执行的任务
4. atrm 任务编号 #取消还未执行的任务,功能和at -d 一样
5. at now+time #延时一定时间执行
例如延时1分钟后,执行创建文件file命令
注:编写脚本程序:
echo 为输出语句
6. at -f filename #延时执行文件中的内容,延时时间可在文件中编写,还可使用-t 参数设置
7. at -m #延时命令没有输出的情况下发邮件给执行者
at -M #延时命令没有输出的情况下不发邮件给执行者
二、at 命令的执行权力设定
1. 添加用户黑名单(/etc/at.deny 系统默认存在此文件)
在此名单中出现的用户不能执行at 命令
在黑名单中加入student用户
student就不能执行at 命令
2. 设定用户白名单(/etc/at.allow 系统默认不存在此文件,需要用户创建)
注:如果白名单一旦存在,系统中所有的用户默认不能执行at 命令,只有在名单中出现的用户可以使用at 命令
在白名单外的除过超级用户外的其他用户将不能执行at 命令
三、系统定时任务
定时任务是永久的,一旦设定,在没有主动删除的情况下,会一直存在在系统内
1. 发起方式
发起方式分为两种,一种是命令方式,另一种是通过修改配置文件发起
方式一(命令):
crontab -u username -e #编写定时任务
将在每分钟执行如下命令
crontab -u username -l #查看定时任务
先创建文件
1分钟后文件被删除
crontab -u username -r #删除定时任务
设定格式:
* * * * *
a. 分钟
b. 小时
c. 天
d. 月
e. 周
在某个* 后加上/num 表示每隔相应的多长时间
例如:
05 * * * * #每小时过5分钟
05 02 * * * #每天2:05 am
30 08 01 * * #每月第一天8:30 am
00 07 25 12 * #12月25日7:00 am
30 16 * * 5 #每个星期五4:30 pm
*/5 * * * * #每5分钟
*/10 9-17 1,15 * * #在每月第一天和第十五天9:00 am 至5:00 pm 之间(在5:00 pm 不会运行,最后一次运行是在4:50 pm )每隔10分钟
0 0 1 jan 0 #1月1日午夜和1月的每个星期日 (不仅是1月1日所在的星期日)
方式二(配置文件):
创建并修改配置文件:/etc/cron.d/filename
vim /etc/cron.d/filename
在此文件中输入想要定时的设定与执行的文件
文件在两分钟后成功被删除
2. crontab 命令的执行权力设定
用户黑名单(/etc/cron.deny,系统默认存在此文件),在此名单中出现的用户不能执行crontab 命令
切换到student 用户下,执行crontab命令被决绝
用户白名单(/etc/cron.allow,系统默认不存在此文件),只有在名单中出现的用户可以使用crontab 命令
切换到白名单以外的用户,发现不能执行crontab 命令
四、系统临时文件的管理
系统中服务在正常运行中都会产生临时文件
临时文件的配置文件都在 /usr/lib/tmpfiles.d/ 目录下
创建并修改配置文件:vim /usr/lib/tmpfiles.d/filename.conf
其中,设定格式为:
d /mnt/westos 777 root root 10s
文件类型 临时文件所在的目录 权限 拥有人 所属组 文件存在的时间
然后,执行配置文件内容 systemd-tmpfiles --create /usr/lib/tmpfiles.d/westos.conf
再清理临时文件 systemd-tmpfiles --clean /usr/lib/tmpfiles.d/westos.conf
此时系统就会清理配置文件中所写目录下,并满足文件存在时间要求的文件
删除了已经创建了10s 以上的文件