Linux基础命令(十六)任务计划at

、基础

        at命令(概念):用于指定一个定时任务(干什么),在某个特定的时间节点(什么时间执行)执行一次(执行的频率)

        at命令(功能):也可以用于删除、列出已经设置好的定时任务;与at命令相关的命令(别名)有atq,atrm,batch命令

        at和batch特点:均是从标准输入中(键盘-->默认)指定的文件中(自定义)读取相关的命令,并在指定的时间运行对应的命令!

        注意:在运行at命令前,需要确保系统启动了atd服务

       实操如下

systemctl status atd      # 查看服务默认的是否开启,确认处于active(running)状态-->绿色
systemctl start atd       # 如果服务未开启,请开启atd服务--->atd守护进程(dameon)
默认:不加后缀的服务都是dervice!

、与定时任务at相应的文件

   (1) /var/spool/at/spool:用户存储设置好的at任务的目录,可进入该目录删除相应的at任务(底层)!
   (2) /etc/at.allow:记录着允许使用at命令的用户,只有在这个目录里的用户才能使用at!
   (3) /etc/at.deny:记录着用户的黑名单,在里面的用户不允许使用at命令!

注意1:at.allow文件的优先级大于at.deny文件!

注意2:记录用户黑白名单的格式是每行一个用户名单!

默认:系统默认会提供一个的/etc/at.deny文件,所有用户都可以使用at命令!

三、at参数的说明(功能出发)

    -m 当指定的任务被完成之后,将给用户发送邮件(email),即使没有标准输出!
    -l 显示"待执行"任务的列表---->atq的别名(query)
    -d 删除指定(任务编号-->先查询)的"待执行"任务;atrm的别名-->不指定编号(删除当前用户所有的任务)
    -r rm(同d)
    -v 显示任务将被执行的"时间"--->验证是否是准时执行!
    -c 打印任务的内容到标准输出---->该任务的"实际"命令内容-->cat!
    -V 显示版本信息(大写)
    -f<文件> 从指定文件读入任务(自定义)"而不是"从标准输入读入(自定义)!
    -t<时间参数> 以时间参数的形式提交要运行的任务

 时间格式的分类

 (1)绝对计时法--->列出常见的四种方

(1) 明天17点钟---->17:20 tomorrow

    格式:HH:MM --->默认是当天,若超时则明天此时刻执行!
(2) 例如:05:00 2018-12-22 

    格式:HH:MM YYYY-MM-DD 
(3) 某年(默认当前)某月某一天的特殊时刻

    格式:HH:MM[am|pm] [Month-->英文] [Date] 

    例如:04:00pm July 30
 
    说明:以空格作为分割

 (2)相对计时法

例如:从当前时刻起再过五分钟执行相关的命令

案例:now + 5 minutes

简写:now+5min

语法:HH:MM[am|pm] + number [mimutes|hours|days|weeks]--->注意加s

优点:这对于安排不久就要执行的命令是很有好处的!

四、测试

(1)任务的编辑和任务的查看

(2)黑名单

(3)白名单

说明:如果白名单存在,没有内容,root不受黑白名单的限制!

补充:为了突出黑白名单文件存在优先级问题,可以将student都写入到文件中,测试!

、定时任务的输出问题

说明:默认定时任务执行后如果有输出的,不会在当前屏幕显示,会以邮件的形式发给at定时任务的发起者!

注意1:由于并没有命令语法检测,从at -c 查看命令执行内容看,如果有错误输出&2,则会在当前屏幕输出!

注意2:postfix邮件服务是否开启,默认是开启的,如果没有受到邮件看下此服务的状态信息,看at -l有无邮件的发送!

疑惑:root和kiosk接受到了邮件信息,但是自定义的用户没有接受到发送的邮件?

分析:由于su的切换,从at -c number来看,会继承当前的环境变量等,所以要看顶层用户的mail!

原理分析

原理:指定好时间来执行任务,at命令会进入一个at shell的环境让用户自定义任务的内容(相当于cat >filename的形式),ctrl+d来

终止键盘的标准输入,此时会将任务以文件的形式写入到/var/spool/at/目录中,那么文件名是如何命名的呢

解释(接上):文件名系统自定义的,并且文件一旦执行,该文件就自行删除--->思考文件是如何创建和删除的

 [21:32:52][kiosk@foundation10:/var/spool]$ ls -ld /var/spool/at/

 drwx------. 3 daemon daemon 31 1月  19 21:25 /var/spool/at/

 关键:daemon这个用户!

理解:dameon是系统用户,为了管理相关服务用的,一般每个服务对应一个用户,他们的shell都是/sbin/nologin(不能登入系统)

注意1:任务中的命令最好全路径,因为命令的寻找通过PATH(可能不在此路径)

注意2:任务中的文件名最好全路径,因为at运行时会跑到执行at命令的工作目录

优点:后台执行的能力--->脱机后继续执行(网络断线后)

原因:系统会将该任务独立出当前用户的bash环境,交给系统的atd服务程序来接管!

八、进阶

非常详细的说明文件

at的后台执行(第二段)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值