记两种计划任务

时间:2022-06-06 21:40:35

单次计划任务:

特点:

单次指定时间的一次延时执行,交互式设定计划任务
在一个指定的时间里面只能执行一个指定的任务,并且只执行一次,重要的事情再说一遍,只执行一次,且需要开启atd进程。

关于atd服务进程:

当需要一次性计划任务的时候我们需要有相关的服务开启。在我们进行使用at一次性任务服务的时候我们来看一下相关的服务是否已近开启成功。

记两种计划任务

记两种计划任务

可以看到我们的7.0系统默认已经开启了,如果服务被关闭了,或者服务默认没有开启,我们可以试一下下面的方式:

开启atd服务:

在红帽7.0之前我们通过以下的方式进行服务的处理:

/etc/init.d/atd  {start|stop|restart|status|condrestart}   ##分别实现的功能是开启,关闭,重启,状态查看,开启重启。 
restart : 强制重启,开启了重新启动,未开启也会开启服务。
condrestart:重启,开启了的服务进行重新启动没有开启的服务不进行启动服务。

at计划任务的执行方式:

at命令用于产生需要运行的计划任务,并将任务以文档的方式写入/var/spool/at/目录里面。
在没有设置过相关的计划服务的时候,我们来看以下这个文件里面有司马,仅有一个spool文件但是里面什么都没有。
记两种计划任务
下面我们添加一个at计划任务
记两种计划任务
可以发现在/var/spool/at/ 目录下面出现了一个文件。

常用命令:

at

at + 时间        ##进入计划任务设定 (ctl+d 退出设定模式,重要的事情再说一遍,ctl+d 退出交互输入计划任务)
at -l (或atq) ##查询计划任务编号信息
atrm + 计划任务编号 (或at -d) ##删除设定过的计划任务
at -c + 计划任务编号 ##查看相关的计划任务的信息(其实是打开当生成计划任务的时候在/var/spool/at文件里面生成的相应的文件信息)
at -f + 文件 ##at命令读入的方式默认是交互式读入,这个参数可以指定读人为文件,在进行脚本书写的时候比较方便。

时间格式:

1.明确时间表示法:

hh:mm ##在今天的固定时分进行执行,如果时间已经过了,明天执行。
hh:mm YYYY-MM-DD ##固定的某年某月执行

2.模糊时间表示法:

now + 5min ##五分钟后(now 可以变为具体明确的单位时间,5min 可以是以days years months 为单位的时间间距 )
4pm tomorrow ##明天下午4点(am也可用)

一个实例:

记两种计划任务

记两种计划任务


at命令的安全性:

计划任务,由于有一个隐蔽的特性,容易被利用在不知觉的情况下,信息定时外流,造成损失。默认所有的用户均有权力进行at命令的使用。At的机制让我们可以进行编辑,使权限有很好的使用:

一些相关文件:

/etc/at.deny ##at计划任务黑名单 (存在名单里面的用户不可使用,但是不存在的或新建用户不起作用)
记两种计划任务

记两种计划任务

记两种计划任务


/etc/at.allow ##at计划任务白名单(这个个文件默认不存在。当这个名单创建,所有用户不可用,除非在文件里面指定了)
记两种计划任务

当allow文件出现我们的所有用户权限都没有了。
记两种计划任务

编辑文件后kiosk用户得到权限。
记两种计划任务

记两种计划任务




=========================

例行性计划任务:

特点 :

at为单次计划任务执行,而crontab 为循环的多次例行性计划任务。

crontab 的执行原理:

crontab -e 执行创建计划任务拍程,首先会在/tmp/目录下读取/var/spool/cron/目录里面相应的用户命令保存的信息,生成临时文件,书写完成保存覆盖/var/spool/下面的相对应的用户目录。

crond工作:

crond服务的最低侦测限制是分钟,所以cron会每分钟去读取一次相关的服务设定文件。

常用命令:

crontab

-e      ##编辑定期任务  (目录存在/var/spool/cron/)
-l ##显示定期任务
-r ##删除当前用户的所有的定期任务(如果要删除特定的计划任务可以通过 -e 命令进行单条的删除)


格式:

记两种计划任务


crontab的安全性:

/etc/cron.deny    ##默认存在系统中,在此列表中出现的用户被禁止
/etc/cron.allow ##默认在系统中不存在,但是当此文件存在时,deny文件失效,并且所有普通用户能执行crontab的权力被禁止,只有在此文件中的用户可以执行crontab

一些相关文件:

/etc/crontab       ##循环例行性任务的记录文件(这个文件属于系统管理员或者系统维护工作的使用)
/etc/cron.d/ 目录 ##该文件文件里面保存crontab命令内容
/var/spool/cron/ 目录 ##在这个目录下会生成以用户为分界的文件,保存crontab命令的内容
/var/log/cron ##cron每次运行的工作会被记录到这个文件里面,(查询病毒或侵入有效)


注:两种计划任务的设定,当有返回内容的时候会通过mail方式查看


all