zoukankan      html  css  js  c++  java
  • linux命令详解之(at)

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


    以下仅说一下一次性任务计划执行(at)
    要使用一次性任务计划,linux必须要有负责这个计划任务的五福,那就是atd服务
    但是并非所有的linux distribution都默认会打开,我们需要手动激活爱听的任务
    #:/etc/init.d/atd start
    #:/etc/init.d/atd stop
    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命令是Windows XP中内置的命令,它也可以媲美Windows中的“计划任务”,而且在计划的安排、任务的管理、工作事务的处理方面,AT命令具有更强大更神通的功能。AT命令可在指定时间和日期、在指定计算机上运行命令和程序。

    注意:必须正在开启Task scheduler服务才能使用 at 命令。可以在命令窗口中输入net start schedule启动它,
    停止则使用net stop schedule


    1. 具体功能

      Windows NT Server 的服务程序管理器只能设置某项服务的启动方式(自动、手动、失效),而在日常管理工作中,常常要求某项服务能定时开启、关闭。 Windows NT Server 提供的 AT 命令能够实现这一点。利用它可实现 RAS服务定时开关, 其具体步骤如下:

      a. 在 “ 设置 ”---“ 控制面板 ”---“ 管理工具 ”---“ 服务 ”中启动 Schedule 服务,并将其启动方式属性设置为自动。

      b. 在命令窗口中使用 AT 命令设置服务程序的定时启动关闭。


    2. 语法详解

      AT [\computername] time [/interactive] [/every:date[, ]|next:date[, ]] ″command″


    3. 参数说明 :

      无参数: 显示所有已设置的计划命令情况。

      \computername : 指示执行该命令的计算机名,如省略则在本机执行。

       time : 命令执行时间 , 将时间以 24 小时标记( 00:00 [ 午夜 ]到 23:59 )的方式表示为小时:分钟

      /interactive : 当程序执行时是否与正在登录的用户进行交互。

      /every:date[, ] : 指定程序执行的日期 ,将 date 指定为星期的一天或多天 (M,T,W,Th,F,S,Su) ,或月的一天或多天(使用 1 到 31 的数字)。用逗号分隔多个日期项。如果省略了 date ,将假定为该月的当前日期。

      next:date[, ] : 指定程序下一次执行的日期。

      ″command″ : 定时执行的 命令、程序( .exe 或 .com )或批处理程序( .bat 或 .cmd )。当命令需要路径作为参数时,请使用绝对路径,也就是从驱动器号开始的整个路径。如果命令在远程计算机上,请指定服务器和共享名的 UNC 符号,而不是远程驱动器号。 如果命令不是可执行 (.exe) 文件,必须在命令前加上 cmd /c ,例如: cmd /c dir > c: est.out

      AT [\computername] [[id][/delete][/yes]]

      参数含义:

      id : 分配给计划命令的识别号码,可由不带参数的 AT 命令查到。

      /delete : 取消指定的计划命令,如果 id 省略的话,取消所有的计划命令。

      /yes : 强制对所有的取消询问回答 yes 。


    4. 例举说明

    例子 1 :查看 at 所有参数


    例子 2 :每日 19 : 00 启动,次日 7 : 30 关闭 RAS 服务的命令


    例子 3 :先停止计划任务、然后再启动计划任务


    例子 4 :到了 12:42 ,电脑会出现 “ 系统关机 ” 对话框,并默认 30 秒延时自动关机

      at 12:42 ShutDown –S –T30

    例子 5:向192.168.1.6定时提醒“与朋友约会的时间到了,快点准备出发吧!”

      at 12:00 Net Send 192.168.1.6与朋友约会的时间到了,快点准备出发吧!

    例子 6:在每,周六早上一点,电脑定时启动My_BackUp.bat批处理文件

      at 1:00AM /Every:Saturday My_BackUp.bat

    例子 7:删除标识编号为5的计划任务

      at 5 /Delete


    下面说明shutdown.exe的参数使用

    Shutdown.exe的参数,每个都具有特定的用途,执行每一个都会产生不同的效果,比如“-s”就表示关闭本地计算机,“-a”表示取消关机操作,下面列出了更多参数,大家可以在Shutdown.exe中按需使用。

      -f:强行关闭应用程序

      -m \\计算机名:控制远程计算机

      -i:显示图形用户界面,但必须是Shutdown的第一个选项

      -l:注销当前用户

      -r:关机并重启

      -t时间:设置关机倒计时

      -c "消息内容":输入关机对话框中的消息内容(不能超127个字符)


    at:计划任务,在特定的时间执行某项工作,在特定的时间执行一次。 
    格式:at+时间
     
    1:date //查看系统当前时间
     
    at 时间 //系统计划启动任务时间
     
    at> date >/root/1.txt //date:系统计划启动任务时间执行date命令;/root/1.txt执行命令写入位

    置和文件 
    ctrl+d退出 //退出at命令
     
    2:date //查看系统当前时间
     
    at 时间 //系统计划启动任务时间
     
    at> init 0 /root/2.txt //init 0:系统计划启动任务时间执行init 0(关机)命令;/root/2.txt执

    行命令写入位置和文件

    3:在固定时间内添加一个用户(这时建立的用户没有密码) 
    #at 12:00(时间) //at命令设定12:00执行一项操作
     
    at>useradd aaa //在at命令里设定添加用户
    aaa 
    ctrl+d //退出at命令
     
    tail -f /etc/passwd //查看/etc/passwd文件后十行是否增加了一个用户aaa

    计划任务结束后,查看任务是否写入文件中,可以用cat或vi命令查看。 
    格式:cat(vi)+(路径)文件名
     
    1:cat(vi) 1.txt 
     2月
     6 09:21:28 CST 2005 
    计划任务设定后,在没有执行之前我们可以用atq命令来查看系统没有执行工作任务。
     
    格式:
    atq 
    例:
    atq 
    1 2005-02-06 09:23 a root

    启动计划任务后,如果不想启动设定好的计划任务可以使用atrm命令删除。 
    格式:atrm+任务号
     
    :at  rm 1 //删除计划任务

    atq //查看计划任务是否删除

    还可以进入到/var/spool/at目录里把计划任务删除,计划任务的文件都保存在该目录里,可以用rm -f

    文件名来删除(以文件的形式删除计划任务,因为计划任务是以文件形式保存在该目录中
    :#cd /var/spool/at //进入到/var/spool/at目录中
     
    ls //显示目录中所有文件
     
    rm -f a0000a0119b0df //删除计划任务

    在通常情况下,超级用户都可以使用这个命令。对于其他用户来说,能否可以使用就取决于两个文

    :/etc/at.allow和/etc/at.deny。 
    “用户名”写入/etc/at.deny中,用户不能执行at命令(管理员限制用户使用at命令)。
     
    例:useradd text //新建一个text用户
     
    ls /etc/at.deny //查看at.deny文件内容
     
    vi /etc/at.deny //对at.deny文件进行编辑
     
    text //对at.deny文件进行编辑,写入text用户名,进行at命令限制,然后wq(保存退出)
     
    cat /etc/at.deny //显示at.deny文件内容
     
    su - text //切换到text用户
     
    at 12:00 //text用户执行at命令,如果被限制则出现下面的提示。
     
    You do not have permission to use at.你不允许使用at这个命令

    at.allow比at.deny优先级高 
    at.allow文件中有的用户可以执行at,没有则不能。
     
    linux操作系统在执行用户是否可以执行at命令时,先看at.allow文件没有才看at.deny文件。
     
    注意:linux操作系统默认没有/etc/at.allow文件。
     
    :ls /etc/at.allow //查看是否已经建立at.allow文件
     
    touch /etc/at.allow //建立/etc/at.allow文件
     
    vi /etc/at.allow //对at.allow文件进行编辑
     
    text //对at.allow文件进行编辑,写入text用户名,该用户名可以执行at命令,然后wq(保存退出

    )。 
    su - text //切换到text用户
     
    at 12:00 //text用户执行at命令,若不出现上面所说的提示就可以进行at命令设定了。

    at命令格式 
    at HH:MM YYYY-MM-DD //HH
    (小时):MM(分钟) YYYY(年)-MM(月份)-DD(日) 
    :at 4:00 2004-11-27 
    HH[am pm]+D(
    ) days //HH(小时)[am(上午)pm(下午)]+days(天) 
    :4pm + 3days :3天以后下午4:00执行at命令设定的计划任务

  • 相关阅读:
    「开始,DP专题」
    ZOJ3612 Median treap
    [HNOI2004]宠物收养所 treap
    SIRO Challenge 状态压缩 + DP 未解
    SPOJ3273 Order statistic set treap模板
    HNU2[I题]Omar Loves Candies 贪心
    HNU1[B题] DP,数位DP
    HNU1[F题] 栈模拟计算
    Node.js权威指南 (6)
    瘦下来之后你会遇见不一样的自己
  • 原文地址:https://www.cnblogs.com/klb561/p/9160174.html
Copyright © 2011-2022 走看看