crontable at

一、在LINUX中,周期执行的任务一般由cron这个守护进程来处理

centos7 也有service服务
service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态

/var/spool/cron/
/var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如troot建的crontab任务对应的文件就是/var/spool/cron/root

/etc/cron
cron.allow cron.d/ cron.daily/ cron.deny cron.hourly/ cron.monthly/ crontab cron.weekly/
权限 cron.allow cron.deny 设置不同用户使用计划任务

分 时 日 月 周
*/5 * * * * 每5分钟执行

二、 at定时任务

centos7 独有有systemctl服务
systemctl atd start //启动服务
systemctl atd restart //关闭服务
systemctl atd stop //重启服务
systemctl atd status //查看服务状态

at #执行的时间
at->#执行的任务脚本


例子1

常用指令: at:安排延时任务
at now+2 minutes 回车

输入要执行的命令 mkdir /soft

ctrl+d 结束输入

[root@sz28 /]#at now+2 minutes
at> mkdir /soft
at> 是ctrl+d中断输入
job 2 at 2018-06-18 16:36

========================
例子2

HH:MM:SS ddMMyyyy 指定具体时间
[root@sz28 /]# at 15:58 06182018 具体时间
at> ls
at> ctrl+d结束输入
job 10 at Thu Jun 18 15:58:00 2018

atq:查看计划任务
                     用atq来查询,已经运行的任务,就消失了。这就是at计划任务的重点,只运行一次
atrm:删除等待任务
                     格式:atrm 任务号  命令后面跟计划任务编号,如果不跟,就会删除这个用户所有的计划任务
                     命令 atrm 10 //删除计划任务10

目录:/var/spool/at/
                    at将要运行的命令以文本形式写入/var/spool/at/目录内,等待atd服务的取用和执行
                    还可以进入到/var/spool/at目录里把计划任务删除,计划任务的文件都保存在该目录里
                    可以用rm -f 文件名来删除(以文件的形式删除计划任务,因为计划任务是以文件形式保存在该目录中)
#cd /var/spool/at //进入到/var/spool/at目录中
#ls          //显示目录中所有文件 
#cat a0000b0138b19c  //查看计划任务
#rm -f a0000b0138b19c //删除计划任务

在通常情况下,超级用户都可以使用这个命令。对于其他用户来说,能否可以使用就取决于两个文件:/etc/at.allow和/etc/at.deny。at 命令是可以基于用户来控制的,我们可以明确指定哪些用户可以使用at计划任务,哪些用户不可以使用at计划任务。