系统中
定时任务是永久的
延时任务是一次性的
意义:让系统自动去维护
1.系统延时任务
(1)建立任务
[root@client_ssh mnt]# at now+1min 设定执行任务时间,延时1分钟
at> touch file{1..10} 任务动作,建立十个文件
at> <EOT> 用ctrl+D发起任务
job 1 at Sun Jan 20 02:11:00 2019
(2)at -l 查看任务列表
(3)at -c 任务号 查看任务内容
(4)at -r 任务号 取消任务执行
(5)当任务有输出时,输出会以邮件的形式发送给at任务的发起者
mail -u root 查看超级用户的邮件
1 查看第一封邮件
q 退出
> /var/spool/mail/root 清空邮件
[root@client_ssh mnt]# mail -u root
任务输出直接邮件发送到任务发起人
2.at用户的黑白名单
(1)vim /etc/at.denyat #########at命令的黑名单,系统中默认存在
student用户无法使用at命令,切换到超级用户
超级用户执行相同的命令,可以执行
###建立一个新用户tom,tom用户执行命令时可以的
(2)/etc/at.allow #########at命令的白名单,白名单建立后系统中所有普通用户无法使用at命令,白名单出现后黑名单失效
<1>建立at命令的白名单,普通用户使用命令无法使用
<2>at命令白名单删除后普通用户可以使用at命令
3.系统定时任务
<1>.crontab时间表示方式
* * * * *
分钟 时 天 月 周
<2>.系统控制crontab的服务
crond.service 当服务开启时定时任务生效
<3>.crontab
crontab -e -u 设定定时任务
crontab -l -u 查看任务列表(待执行任务)
crontab -r -u 取消任务
写入的内容如下:即1月20号的3点每分钟都执行删除/mnt/所有文件
1月3号和5号以及每周五的每天9点到17点的每两分钟
<4>.文件方式设定定时任务
vim /etc/cron.d/filename
* * * * * username action
* * * * * root rm -fr /mnt/*
在文件中指定时需要指定用户身份
(1)先切换到 /etc/cron.d/目录下,建立并编辑文件hello
(2)在/mnt/下建立是个文件
(3)一分钟后查看/mnt/
<5>.crontab的黑白名单
/etc/cron.deny ##系统中默认存在,在此文件中出现的用户不能执行crontab
/etc/cron.allow ##系统中默认不存在,当文件出现,普通用户不能执行crontab
只有在名单中的用户可以,并且/etc.at.deny失效
这两个名单都不会影响/etc/cron.d/目录中定时任务的发起和执行
<1>编辑/etc/cron.deny黑名单,写入tom
切换到tom用户,无法使用crontab
<2>切换到student用户,可以使用crontab命令
<3>在系统中查找/etc/cron.allow白名单,建立并编辑白名单,内容为空
tom在黑名单中
<4>白名单出现后内容为空,普通用户tom和student用户都无法使用crontab命令
<5>在黑名单和白名单中都写入tom用户
切换到tom用户可以执行crontab命令,说明白名单出现后黑名单失效,即就是白名单的优先级高于黑名单
<6>试验后删除白名单
4.系统中临时文件的管理方式
<1>cd切换到 /etc/usr/lib/tmpfiles.d/目录
新建并编辑文件vim westos.conf
文件中写入
类型 文件名 权限 所有人 所有组 保留时间
d /mnt/westos 777 root root 10s
<2>对/mnt/文件进行监控
<3>systemctl-tmpfiles --create /usr/lib/tmpfiles.d/westos.conf
建立临时文件
<4>systemctl-tmpfiles --clean /usr/lib/tmpfiles.d/westos.conf
清除临时文件
<5>添加临时文件/mnt/westos/tmpwestos
<6>再添加一个临时文件
<7>两个临时文件在系统中存在的时间都超过设定的时间,一起被清理掉