• at在指定的时间执行命令+atq列出用户待处理作业(jobs)


    按下crtl+d取消定时任务

    # at now+1hour
    at> echo"a">a
    at> <EOF>
    at> <EOT>
    job 4 at Thu Dec 31 15:52:00 2020
    [root@localhost a]# atq
    4 Thu Dec 31 15:52:00 2020 a root
    [root@localhost a]# atr
    atrm atrun
    [root@localhost a]# atrm 4
    [root@localhost a]# atq

    at [-V] [-q queue] [-f file] [-mMlbv] TIME

    at [-V] [-q queue] [-f file] [-mMlbv] –t time_arg

    at –c job[ job…]

    at [-rd] job[ job…]

    atq [-V] [-q queue]

    atrm [-V] job[ job…]

    batch

    (1).说明

      注意:at一般是临时任务,crontab一般是周期性任务,但都是计划任务的一种。

      at和batch读取标准输入或一个指定文件,它们将会在稍后被执行。

      at在指定的时间执行命令。

      atq列出用户待处理作业(jobs),如果是超级用户,所有用户的(待处理)作业都将被列出。输出格式:作业号、日期、小时、队列和用户名。

      atrm删除作业,由作业号标识。

      batch 当系统负载级别允许时执行命令;换句话说,当负载平均值降至0.8以下时,或者在atd中调用指定的值。

      at允许复杂的时间规范,扩展POSIX.2标准。它接受HH:MM形式的时间在一天的特定时间允许一项工作。如果时间已经过去,则假定是第二天。你也可以指定midnight午夜、noon中午或teatime下午茶时间(4PM),并且你可以使用AM、PM来表达允许时间的上午和下午。你还可以表明作业在哪一天运行,通过给出一个形式上有月份名称和任意的年份的日期,或给出形式为MMDDYY、MM/DD/YY、DD.MM.YY、YYYY-MM-DD的日期。日期规格必须遵循一天的时间规格。你也可以给出now + count time-units(时间单位)的时间,时间单位可以是minutes(分钟)、hours(小时)、days(天)或weeks(星期),并且你能通过添加today或tomorrow后缀来告诉at命令今天或明天运行作业。

      例如:从现在起三天后的下午四点运行作业at 4pm + 3 days;在July 31上午十点运行作业at 10am July 31;明天上午一点运行作业at 1am tomorrow。

      注意:at类命令的服务名叫atd

    (2).选项

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    -V 打印版本信息
    -q queue 使用指定的队列。队列名称由单个字母组成,有效队列名称范围从a到z和A到Z。at默认a队列,batch默认b队列。具有较高字母的队列运行良好。特殊队列“=”为正在运行的作业保留。如果作业提交给大写字母指定的队列,则该作业被视为在作业时提交给batch。一旦时间到达批处理规则将应用于负载平衡使用中。如果atq被赋予指定队列,它将只显示该队列的待处理作业。
    -m 即使没有输出也会在作业完成后向用户发出邮件。
    -M 不发送邮件给用户
    -f file从文件读取而不是标准输出
    -l atq的别名
    -r atrm的别名
    -d atrm的别名
    -v 显示在读取作业前作业执行的时间。显示时间格式样例“The Feb 20 14:50:00 1997”
    -c 将命令行中列出的作业标记为标准输出
    -t time_arg 提交time_arg参数指定作业运行时间,格式[[CC]YY] MMDDhhmm

    (3).实例

    使用相对时间执行命令

    1
    2
    3
    4
    5
    6
    7
    8
    [ root@CentOS6 桌面 ]# ls
    按下ctrl+D 取消
    [ root@CentOS6 桌面 ]# at now +1 minutes
    at> echo "at now +1 minutes">1.txt   //不知道默认保存在哪里,只能自己设置一个
    at> <EOT>                  //Ctrl+d会直接打出<EOT>
    job 4 at 2018-07-21 11:22
    [ root@CentOS6 桌面 ]# ls
    1.txt
    [ root@CentOS6 桌面 ]# vim 1.txt    //进入到1.txt里可以看到输出内容

    使用绝对时间执行命令

    1
    2
    3
    4
    [ root@CentOS6 桌面 ]# at 12:00
    at> ls />2.txt
    at> <EOT>
    job 5 at 2018-07-21 12:00

    查看待处理的作业,并删除无用的作业

    1
    2
    3
    4
    5
    [ root@CentOS6 桌面 ]# atq   //查看待处理的作业,也可以是at -l
    5    2018-07-21 12:00 a root  //5任务编号,2018-07-21 12:00执行时间,a队列,root执行者
    [ root@CentOS6 桌面 ]# atrm 5  //删除无用的作业
    [ root@CentOS6 桌面 ]# atq
    [ root@CentOS6 桌面 ]#

    根据作业ID查看执行细节

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    [root@CentOS6 桌面]# at now +2 minutes
    at> echo "at now +2 minutes">3.txt
    at> job 6 at 2018-07-21 12:11
    [root@CentOS6 桌面]# at -c 6
    #!/bin/sh
    # atrun uid=0 gid=0
    # mail root 0
    umask 22
    ORBIT_SOCKETDIR=/tmp/orbit-root; export ORBIT_SOCKETDIR
    HOSTNAME=CentOS6.8; export HOSTNAME
    IMSETTINGS_INTEGRATE_DESKTOP=yes; export IMSETTINGS_INTEGRATE_DESKTOP
    SHELL=/bin/bash; export SHELL
    XDG_SESSION_COOKIE=f361f670c8f25b859941a16a00000017-1532137953.618455-100069161; export XDG_SESSION_COOKIE
    HISTSIZE=1000; export HISTSIZE
    GTK_RC_FILES=/etc/gtk/gtkrc:/root/.gtkrc-1.2-gnome2; export GTK_RC_FILES
    WINDOWID=29360132; export WINDOWID
    QTDIR=/usr/lib64/qt-3.3; export QTDIR
    QTINC=/usr/lib64/qt-3.3/include; export QTINC
    IMSETTINGS_MODULE=IBus; export IMSETTINGS_MODULE
    USER=root; export USER LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:mi=01;05;37;41:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lz=01;31:*.xz=01;31:*.bz2=01;31:*.tbz=01;31:*.tbz2=01;31:*.bz=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=01;36:*.au=01;36:*.flac=01;36:*.mid=01;36:*.midi=01;36:*.mka=01;36:*.mp3=01;36:*.mpc=01;36:*.ogg=01;36:*.ra=01;36:*.wav=01;36:*.axa=01;36:*.oga=01;36:*.spx=01;36:*.xspf=01;36:; export LS_COLORS
    SSH_AUTH_SOCK=/tmp/keyring-EG2luA/socket.ssh; export SSH_AUTH_SOCK
    GNOME_KEYRING_SOCKET=/tmp/keyring-EG2luA/socket; export GNOME_KEYRING_SOCKET
    SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/2251,unix/unix:/tmp/.ICE-unix/2251; export SESSION_MANAGER
    USERNAME=root; export USERNAME
    DESKTOP_SESSION=gnome; export DESKTOP_SESSION
    MAIL=/var/spool/mail/root; export MAIL
    PATH=/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin; export PATH
    QT_IM_MODULE=ibus; export QT_IM_MODULE
    PWD=/root/������; export PWD
    XMODIFIERS=@im=ibus; export XMODIFIERS
    GDM_KEYBOARD_LAYOUT=us; export GDM_KEYBOARD_LAYOUT
    LANG=zh_CN.UTF-8; export LANG
    GNOME_KEYRING_PID=2241; export GNOME_KEYRING_PID
    GDM_LANG=zh_CN.UTF-8; export GDM_LANG
    GDMSESSION=gnome; export GDMSESSION
    HISTCONTROL=ignoredups; export HISTCONTROL
    SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass; export SSH_ASKPASS
    SHLVL=2; export SHLVL
    HOME=/root; export HOME
    GNOME_DESKTOP_SESSION_ID=this-is-deprecated; export GNOME_DESKTOP_SESSION_ID
    LOGNAME=root; export LOGNAME
    CVS_RSH=ssh; export CVS_RSH
    QTLIB=/usr/lib64/qt-3.3/lib; export QTLIB
    DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-0ZCxugK00Z,guid=ca2e032461b953e455fa17300000006c; export DBUS_SESSION_BUS_ADDRESS
    LESSOPEN=||/usr/bin/lesspipe.sh %s; export LESSOPEN
    WINDOWPATH=1; export WINDOWPATH
    G_BROKEN_FILENAMES=1; export G_BROKEN_FILENAMES
    XAUTHORITY=/var/run/gdm/auth-for-root-mLJQsO/database; export XAUTHORITY
    COLORTERM=gnome-terminal; export COLORTERM
    cd /root/������ || {
        echo 'Execution directory inaccessible' >&2
        exit 1
    }
    ${SHELL:-/bin/sh} << 'marcinDELIMITER09c0b95e'
    echo "at now +2 minutes">3.txt
     
    marcinDELIMITER09c0b95e

      说明:at命令尚未执行的任务都存在/var/spool/at/目录下,也可以直接查看该文件。

    (4).at的特殊写法

    at 20:00 2008-10-1  在具体时间执行

    at now +10min  在十分钟后执行

    at 17:00 tomorrow  明天下午五点执行

    at 6:00 pm + 3 days  在3天后下午6点执行

    at 23:00 < a.txt  将a.txt导入

  • 相关阅读:
    根据访问属性进行差异化数据加载
    前人挖坑,后人填坑
    也让盲人拥抱互联网
    谈谈D2
    Android数据库大批量数据插入优化
    framework中编译anroid工程并在模拟器上运行
    简单JNI使用demo
    解决javah生成c头文件时找不到android类库的问题
    JNI的native代码中打印日志到eclipse的logcat中
    Android.mk简介<转>
  • 原文地址:https://www.cnblogs.com/xuanbjut/p/14216748.html
Copyright © 2020-2023  润新知