zoukankan      html  css  js  c++  java
  • Linux中at命令详解

    at命令

    一:简介:

    计划任务,在特定的时间执行某项工作,在特定的时间执行一次,需要安装at服务,apt-get install at

    二:时间定义:

    at允许使用一套相当复杂的指定时间的方法。
    ● 能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。 例如:04:00
    ● 能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的词语来指定时间。
    ● 能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 例如:12pm
    ● 能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年),指定的日期必须跟在指定时间的后面。 例如:04:00 2009-03-1
    ● 能够使用相对计时法。指定格式为:now + count time-units ,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)。count是时间的数量,几天,几小时。 例如:now + 5 minutes 04pm + 3 days
    ● 能够直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

    三:语法:

    at(选项)(参数)

    四:选项:

    -m:当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
    -M:不发送邮件
    -l:atq的别名
    -d:atrm的别名
    -r:atrm的别名
    -v:显示任务将被执行的时间,显示的时间格式为:Thu Feb 20 14:50:00 1997
    -c:打印任务的内容到标准输出
    -V:显示版本信息
    -q:后面加<队列> 使用指定的队列
    -f:后面加<文件> 从指定文件读入任务而不是从标准输入读入
    -t:后面<时间参数> 以时间参数的形式提交要运行的任务

    五:相关命令:

    ● at:在特定的时间执行一次性的任务
    ● atq:列出用户的计划任务,如果是超级用户将列出所有用户的任务,结果的输出格式为:作业号、日期、小时、队列和用户名
    ● atrm:根据Job number删除at任务
    ● batch:在系统负荷允许的情况下执行at任务,换言之,就是在系统空闲的情况下才执行at任务

    六:参数:

    日期时间:指定任务执行的日期时间
    对队列的补充:
    ● -q选项后面跟上队列名称将使用指定的队列执行at任务
    ● 队列名称只包含一个字母,有效的队列名称取值范围是:小写字母a-z或大写字母A-Z
    ● 在默认情况下a队列作为at命令的默认队列,b队列作为batch命令的默认队列
    ● 越大的字母在执行时拥有越高的优先级
    ● "="是作为特殊队列保留给当前运行的at任务使用的
    ● 如果在创建at计划任务是使用大写字母指定任务的队列,该任务在执行的时候将被当做batch计划任务处理
    ● 使用atq查询at任务时如果指定了队列名称,查询的结果只会包含这个队列下的任务
    对-t选项的补充:
    ● -t选项的作用是在指定的time_arg时间参数对应的时刻执行at任务
    ● 这个参数后面的时间的格式必须和touch命令-t选项所需的时间的格式一致
    ● time_arg的格式为[[CC]YY]MMDDhhmm[.ss]
    CC 指定年份的前两位数字
    YY 指定年份的后两位数字
    MM 指定一年的哪一月(从 01 到 12)
    DD 指定一月的哪一天(从 01 到 31)
    hh 指定一天中的哪一小时(从 00 到 23)
    mm 指定一小时的哪一分钟(从 00 到 59)
    ss 指定一分钟的哪一秒(从 00 到 59)

    七:相关配置文件:

    ● 时间规范的确切定义可以在/usr/share/doc/at-3.1.10/timespec中查看
    ● 默认情况下计划任务都是放在/var/spool/at/这个文件
    ● root用户可以在任何情况下使用at命令,而其他用户使用at命令的权限定义在/etc/at.allow(被允许使用计划任务的用户)和/etc/at.deny(被拒绝使用计划任务的用户)文件中
    ● 如果/etc/at.allow文件存在,只有在该文件中的用户名对应的用户才能使用at
    ● 如果/etc/at.allow文件不存在,/etc/at.deny存在,所有不在/etc/at.deny文件中的用户可以使用at
    ● at.allow比at.deny优先级高,执行用户是否可以执行at命令,先看at.allow文件没有才看at.deny文件
    ● 如果/etc/at.allow和/etc/at.deny文件都不存在,只有root用户能使用at
    ● 一个空内容的/etc/at.deny表示任何用户都能使用at命令,这是默认的配置
    ● 一般情况下这两个文件存在一个即可。如果只有少数几个用户需要使用计划任务,那么就保留at.allow文件,如果大部分用户都要使用计划任务,那么保留at.deny即可

    八:创建at任务:

    创建at任务方式有两种,从文件输入和从控制台输入。以下分别用两种方式创建1分钟后将当前时间写入 /root/learngit 文件的命令

    1. 文件输入:

    linux中at命令详解

    2. 控制台输入:

    linux中at命令详解

    九:实例:

    linux中at命令详解
    linux中at命令详解

    linux中at命令详解

    linux中at命令详解
    linux中at命令详解

    出处:https://blog.51cto.com/u_12822117/2121101

    您的资助是我最大的动力!
    金额随意,欢迎来赏!
    款后有任何问题请给我留言。

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我。(●'◡'●)

    如果你觉得本篇文章对你有所帮助,请给予我更多的鼓励,求打             付款后有任何问题请给我留言!!!

    因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【Jack_孟】!

  • 相关阅读:
    判断是否微信浏览器,是的话,加入自己想加的功能
    Spring MVC源码(三) ----- @RequestBody和@ResponseBody原理解析
    Spring MVC源码(二) ----- DispatcherServlet 请求处理流程 面试必问
    Spring MVC源码(一) ----- 启动过程与组件初始化
    spring5 源码深度解析----- IOC 之 bean 的初始化
    spring5 源码深度解析-----IOC 之 循环依赖处理
    spring5 源码深度解析-----IOC 之 属性填充
    spring5 源码深度解析----- IOC 之 bean 创建
    spring5 源码深度解析----- IOC 之 开启 bean 的加载
    spring5 源码深度解析----- IOC 之 自定义标签解析
  • 原文地址:https://www.cnblogs.com/mq0036/p/14645726.html
Copyright © 2011-2022 走看看