系统延时任务和定时任务

一  延时文件

首先我们在 /mnt/ 目录下建立几个文件,然后再用at 命令来执行

[root@localhost ~]# at  14:24    #设定任务执行时间
at> rm   -rf   /mnt/*       #任务动作
at> <EOT>  <---> ctrl+d        #用ctrl+d发起任务
job 12 at  Wed  Aug   1    14:24:00 2018
示例:开启有两个虚拟机shell,一个watch -n 1 ls /mnt/,另一个发起命令

可以看到 /mnt  下的文件都被删除了

[root@localhost ~]# at   now+1min    #延时1分钟
at> echo hello
at> <EOT>
job 13 at Wed Aug 1 14:38:00 2018

at -l        #查看任务列表

at -c 任务号    #查看任务内容

at -r 任务号    #取消任务执行

注意:当任务有输出时,输出会以邮件形式发送给at任务的发起者

mail -u root    #查看超级用户的邮件
number    #查看第几封邮件
q    退出

>    /var/spool/mail/root    #清空邮件

二  at任务的黑白名单

/etc/at.deny    #系统中默认存在,在此文件中出现的用户不能执行at

在 deny中 输入westos 为黑名单,让其不能执行 at 命令

/etc/at.allow    #系统中默认不存在,此文件出现时,不在上面的普通用户不能执行at
                        #此文件优先级高于at.deny,当此文件出现时,不读取at.deny中的内容

在白名单中输入 westos ,在上面的可以执行 at 命令,因此 student 用户不能执行

虽然黑名单中也有 westos,但是白名单的优先级大于黑名单

三  定时任务

1)crontab时间表示方式

* * * * *    #每分钟
*/2 * * * *    #每2分钟
*/2 09-17 * * *    #早9到晚5每2分钟
*/2 09-17  1 3,5 5    #3月和5月每周五及3月1日,5月1日的早9到晚5每2分种
*/2 09-17 * * 5    #每周五早9到晚5的每2分钟

2) crontab的命令
crontab -e -u 用户      #创建
crontab -l -u 用户      #显示

创建一个命令  意为每分钟删除一次 /mnt 目录下的文件
crontab -r -u 用户      #删除

可以看到命令被删除

3) 系统控制crontab的服务
crond.service    #当程序开启时任务生效

可以看到服务状态是开启的

我们可以用stop 命令将其关闭

可以看到 crontab 服务被停止,这用你写的 at 命令将会失效

四  文件方式设定定时任务

vim /etc/cron.d/file
* * * * *    username action
* * * * *    root     rm -rf   /mnt/file*

在文件中输入 (* * * * *    root     rm -rf   /mnt/file*) 这个命令,表示每分钟清除一次 /mnt 下面 file* 文件

可以看到 /mnt 下面有文件 file{1..4} 四个文件,现在时间 是 56秒

可以看到刚过 整分,文件就被删除了

注意:(deny 和 allow )这两个文件不影响/etc/cron.d/目录中定时任务的发起及执行

五  系统中临时文件的管理方式

cd /usr/lib/tmpfiles.d/
vim westos.conf

    配置内容: d /mnt/westos 777 root root 8s

systemd-tmpfiles --create /usr/lib/tmpfiles.d/*    #执行一遍临时文件配置,才能建立/mnt/westos

systemd-tmpfiles --clean /usr/lib/tmpfiles.d/*    #运行一遍临时文件配置来清除文件

意思就是在 /mnt/westos 目录下的文件 超过 8s 的,执行clean 命令可以删除, 而没有超过 8s 的,不能被清除


可以看到第一次清除时 ,由于 file1 超过了8s 被清除了,而file2 则因没超过 8s 而依然存在

猜你喜欢

转载自blog.csdn.net/weixin_42668123/article/details/81329945