Linux定时延时机制

来源:互联网 发布:单片机原理图设计 编辑:程序博客网 时间:2024/06/14 07:37

一、at延时任务机制

1)at + time #time为具体时间,表示在某个时间执行某个任务
at now + xxx #表示在距离现在xxx时间后,执行某个任务
按ctrl d 表示保存退出交互模式
[root@localhost ~]# at 19:02
at> touch /tmp/file
at>
job 6 at Tue Oct 31 19:02:00 2017

这里写图片描述

[root@localhost ~]# at now+1min
at> rm -fr /tmp/*
at>
job 7 at Tue Oct 31 19:03:00 2017
这里写图片描述

2)at命令参数详解
at -l| at q #查看当前待执行任务

[root@localhost ~]# at -l
6 Tue Oct 31 19:02:00 2017 a root

atrm + id #取消id号所代表的任务
at -f file #延时执行文件中的命令
at -m #延时命令没有输出也发送邮件
at -M #延时命令有输出也不发送邮件
这里写图片描述
3)at命令的执行黑白名单
/etc/at.deny #该文件是at命令的黑名单,里面可直接填入黑名单人名,该文件已经存在
这里写图片描述

将kiosk用户写入了黑名单,所以kiosk用户没有执行at命令的权限

/etc/at.allow #该文件默认不存在,需要自己建立。只有在该文件里面的用户和超级用户有使用at命令的权限,白名单生效时黑名单默认失效。

二、crontab定时任务机制

定时任务是可以永久执行的,而延时任务只能做一次

1、建立定时任务命令
1)crontab -e #会自动进入一个编写页面里面,后面也可以加-u username,直接表示该定时任务的所建立人

这里写图片描述
这里写图片描述
该文件的编写格式为
min hour day month week command
*表示每分钟或者每小时等,而当天、月和周都有规定时,它们为且的关系
例如:
15 08 25 * 3 rm -fr /tmp/* #表示每月的25号及每月的周三八点十五分执行rm -fr /tmp/*命令
图中* * * * * 表示每分钟都执行一次

2)也可在/etc/cron.d/目录中,建立一个新的文件,此文件的优势是可以在一个文件里建立多个不同用户所想要执行的定时任务。
格式为:
min hour day month week user command
3)也可以在/var/spool/cron/目录里面直接建立一个以用户名建立的文件,里面的格式和1)中格式一样

2、crontab命令黑白名单
同at命令的黑白名单类似,/etc/cron.deny为该命令的黑名单,该名单默认已经存在,在该名单之中的用户将没有权限进行crontab命令
/etc/cron.allow为白名单,这个名单需要自己建立,建立之后只有这个名单中的用户和超级用户可以执行该命令,并且该名单存在生效时黑名单自动失效。

三、系统中的临时文件

系统在正常使用的时候,会产生一些临时文件。隔一段时间后,会自动删除,也可以自己设定。
设定文件在/usr/lib/tpmfiles.d/目录里面,文件名可以自己设置,但必须以.conf结尾。

格式为:
文件类型 文件名称 权限 所属人 所属组 临时服务时间
eg:d /tmp 777 root root 10s
表示只有存在时间10s以上的在/tmp里面的文件才可以被执行
[root@localhost tmpfiles.d]# systemd-tmpfiles –create /usr/lib/tmpfiles.d/haha.conf #创建临时文件的任务
[root@localhost tmpfiles.d]# systemd-tmpfiles –clean /usr/lib/tmpfiles.d/haha.conf #删除临时文件的任务
这里写图片描述

原创粉丝点击