• linux命令详解之(at)--6/24


    在Linux下,有两个命令可以用来作为计划任务而执行,
    at:一次性定时任务计划执行
    crontab :每天定时任务计划执行


    以下仅说一下一次性任务计划执行(at)
    要使用一次性任务计划,linux必须要有负责这个计划任务的五福,那就是atd服务
    但是并非所有的linux distribution都默认会打开,我们需要手动激活爱听的任务
    #:/etc/init.d/atd start
    #:/etc/init.d/atd stop

    一、at服务

      cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。
      service atd start    //启动服务
      service atd  stop     //关闭服务
      service atd restart  //重启服务
      service atd reload   //重新载入配置
      service atd status   //查看服务状态 

    二、at在配置文件:

    at类似打印进程,会把任务放到/var/spool/at目录中,到指定时间运行它 。at命令相当于另一个shell,运行at time命令时,它发送一个个命令,可以输入任意命令或者程序。

    atd服务启动支持用法:/etc/init.d/atd {start|stop|restart|crondrestart|status}

    出现如下服务,证明系统未安装爱听的服务,如图:
    linux命令详解之(at)

    我们需要手动安装
    #:yum install - y at
    #:apt-get install at
    linux命令详解之(at)

    启动服务:

    #:/etc/init.d/atd start
    linux命令详解之(at)

    如果担心启动是否执行OK的话,可使用命令查看:
    #;ps aux |grep atd
    linux命令详解之(at)

    at 命令参数
    at [参数] [时间]
    -m:当指定的任务被完成之后,将给用户发送邮件,即使没有标准输出
    -I:atq的别名
    -d:atrm的别名
    -v:显示任务将被执行的时间
    -c:打印任务的内容到标准输出
    -V:显示版本信息
    -q:使用指定队列
    -f:从指定文件读入任务,而不是从标准输入读入
    -t:一时间参数的形式提交要运行的任务

    at时间格式:
    HH:AM
    ex>04:00   #在今日的HH:MM是可执行,弱势该是可以超过,在在明天的此时可执行
    HH:MM YYYY-MM-DD
    ex>04:00 2016-03-17
    强制规定在某年某月的某一天的特殊时刻进行该任务
    HH:MM[am|pm] [Month] [date]
    ex>04pm March 17
    强制在某年某月的的某时刻进行该任务
    HH:MM[am|pm] + number [minutes|hours|days|weeks]
    ex>now + 5 minutes
    ex<04pm + 3days
    某个时间点再加几个事件后才执行该任务

    使用实例:
    1.三天后的下午5点执行/bin/ls
    #:at 5pm+3 days
    at>/bin/ls
    at>按ctrl+D
    linux命令详解之(at)

    2.明天17点钟,输出时间到指定文件内
    #:at 17:00 tomorrow
    at>date>/tmp/2016.log
    at>按ctrl+D
    linux命令详解之(at)

    3.使用atq查看系统没有执行的工作任务
    #:atq
    linux命令详解之(at)

    4.删除已经设定的任务
    #:atq
    #atrm 任务号
    #atq
    linux命令详解之(at)

    5.显示已经设定的任务内容
    #:at -c  任务号
    linux命令详解之(at)
    中间省略N多
    linux命令详解之(at)

    atd设置开机启动:
    #:chkconfig atd on  #当前用户
    #chkconfig --level 2345 atd on  #修改服务器的默认启动等级

    at命令的安全问题:
    如何达到at命令的使用可控,这是一个问题,不过我哦们可以使用
    /etc/at.allow 与 /etc/at.deny
    来对at的使用进行限制,其工作原理如下:
    先寻找/etc/at.allow,写入这个文件的使用者能用,没有在此文件中的则不能使用(即使没有写在/etc/at.deny中)
    如果没有/etc/at.allow不存在,寻找/etc/at.deny文件,写在此文件中的使用者不能使用,而没有在此文件中的使用者,就可以使用
    如果两个文件读不存在,那么只有root可以使用at命令。

    一般情况下。allow的管理较为严格,deny则较为松散
    一般情况下,按章完成后系统通常会保留一个空的/etc/at/deny文件,仪式是允许所有人使用,如果不希望某人使用的话,直接把使用者的账户跳入/etc/at.deny里面即可。注意:一个账号一行

    相关命令:

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

    相关配置文件:

    ● 时间规范的确切定义可以在/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命令详解

  • 相关阅读:
    黄聪:解决Web部署 svg/woff/woff2字体 404错误
    黄聪:C#中HtmlAgilityPack判断是否包含或不包含指定的属性或值
    黄聪:GeckoFX如何引用jquery文件并执行自定义JS
    黄聪:css3实现图片划过一束光闪过效果(图片光影掠过效果)
    黄聪:C#带cookie模拟登录百度
    黄聪:如何为IIS增加svg和woff等字体格式的MIME
    黄聪:微信支付错误两个问题的解决:curl出错,错误码:60
    黄聪:《跟黄聪学WordPress插件开发》
    黄聪:GeckoWebBrowser多窗口独立cookie
    黄聪:远程连接mysql数据库注意事项记录(远程连接慢skip-name-resolve)
  • 原文地址:https://www.cnblogs.com/klb561/p/9216134.html
Copyright © 2020-2023  润新知