zoukankan      html  css  js  c++  java
  • at命令使用

    at 命令是用来执行一次性任务,比如要在二十分钟后重启,要在 2 分钟后启动一个可执行程序,或者在一天后执行一个脚本。适合应对突发性和临时性的任务。at允许使用一套相当复杂的指定时间的方法。它能够接受在当天的hh:mm(小时:分钟)式的时间指定。假如该时间已过去,那么就放在第二天执行。当然也能够使用midnight(深夜),noon(中午),teatime(饮茶时间,一般是下午4点)等比较模糊的 词语来指定时间。用户还能够采用12小时计时制,即在时间后面加上AM(上午)或PM(下午)来说明是上午还是下午。 也能够指定命令执行的具体日期,指定格式为month day(月 日)或mm/dd/yy(月/日/年)或dd.mm.yy(日.月.年)。指定的日期必须跟在指定时间的后面。

    上面介绍的都是绝对计时法,其实还能够使用相对计时法,这对于安排不久就要执行的命令是很有好处的。指定格式为:now + count time-units,now就是当前时间,time-units是时间单位,这里能够是minutes(分钟)、hours(小时)、days(天)、weeks(星期)count是时间的数量,究竟是几天,还是几小时,等等。

    更有一种计时方法就是直接使用today(今天)、tomorrow(明天)来指定完成命令的时间。

    ① 查看 at 服务是否安装(守护进程 atd 为 at 命令提供服务)

    [root@localhost ~]# chkconfig --list|grep atd
    
    //Centos7 下需要使用如下命令
    [root@localhost ~]# systemctl list-unit-files |grep atd
    atd.service                                                             enabled
    rpc-statd-notify.service                                                static
    rpc-statd.service                                                       static

    在这里插入图片描述


    ② 查看服务是否在运行

    //Centos7以前
    service atd status
    或
    //Centos7
    systemctl status atd

    在这里插入图片描述


    ③ at 的 黑名单和白名单

    在系统的 /etc 目录下可能会有两个关于 at 命令使用限制的文件,一个是黑名单(etc/at.deny)一个是白名单(/etc/at.allow),一般只有一个黑名单文件,因为大部分情况下是允许执行 at 命令的,如果使用白名单,有 100 个用户的话,岂不是要写100行,但黑名单只需要把被限制的一两个写上就行。

    • 如果系统中有/etc/at.allow 文件,那么只有被写入该文件的用户才可以执行 at 命令(将使用者的账号写入即可,一个一行)相当于白名单文件,此时/etc/at.deny就会被忽略,相当于黑名单。
    • 如果系统中没有/etc/at.allow文件,只有/etc/at.deny,那么被写入该文件的用户就不能使用 at 命令,黑名单对 root 不起作用。
    • 如果两个文件都不存在,那么只有root 用户可以执行。

    ④ at命令语法

    • 语法
    at(选项)(参数)
    • 选项
    -f:指定包含具体指令的任务文件;
    -q:指定新任务的队列名称;
    -l:显示待执行任务的列表;
    -d:删除指定的待执行任务;
    -m:任务执行完成后向用户发送E-mail。
    • 参数
      日期时间:指定任务执行的日期时间。

    ⑤ 实例

    三天后的下午 5 点锺执行/bin/ls

    [root@localhost ~]# at 5pm+3 days
    at> /bin/ls
    at> <EOT>
    job 7 at 2019-01-08 17:00

    明天17点钟,输出时间到指定文件内:

    [root@localhost ~]# at 17:20 tomorrow
    at> date >/root/2019.log
    at> <EOT>
    job 8 at 2019-01-08 17:20

    计划任务设定后,在没有执行之前我们可以用atqat -l命令来查看系统没有执行工作任务:

    [root@localhost ~]# atq
    7       Tue Jan  8 17:51:00 2019 a root

    显示已经设置的任务内容:

    [root@localhost ~]# at -c 7
    #!/bin/sh
    # atrun uid=0 gid=0
    # mail root 0
    umask 22
    //...省略一大堆系统设置
    date >/root/2019.log

    删除已经设置的任务:

    atrm 7(任务编号)

    四小时后关机:
    在这里插入图片描述

    at 是一个一次性定时的命令,守护进程 atd 为它提供服务。如果需要周期性定时任务,需要使用 crontab 命令

  • 相关阅读:
    [算法] 堆栈
    [刷题] PTA 02-线性结构3 Reversing Linked List
    java IO流 (八) RandomAccessFile的使用
    java IO流 (七) 对象流的使用
    java IO流 (六) 其它的流的使用
    java IO流 (五) 转换流的使用 以及编码集
    java IO流 (四) 缓冲流的使用
    java IO流 (三) 节点流(或文件流)
    java IO流 (二) IO流概述
    java IO流 (一) File类的使用
  • 原文地址:https://www.cnblogs.com/2567xl/p/11322309.html
Copyright © 2011-2022 走看看