at linux

  

at atd 等所有命令均由 at 包提供

 

 

默认只有/etc/at.deny ,此为黑名单

/etc/at.allow 为白名单,优先级高于 /etc/at.deny

当/etc/at.allow 和 /etc/at.deny 都不存在时,只有 root才能使用 at ,rpm包默认提供了空/etc/at.deny,意味着所有用户可以使用at命令

/etc/at.allow & /etc/at.deny 格式都为 一个账号 一行

 

 

创建的所有at任务会存放于/var/spool/at目录下

 

 

邮件相关:

at 默认会把执行结果发送邮件到用户邮箱中,但是,如果执行的命令或脚本如果没有任何输出,是不会发送邮件的

有两个选项可以控制at发送邮件的行为

  •  -m    无论任何情况都发送邮件
  •  -M    无论任何情况都不发送邮件

at > /dev/null  2>&1 是不能取消at发送邮件的

 

守护进程:

at的执行需要依赖守护进程atd

 

 

 

常用选项:

  • -c   显示命令详情  cat之意
    [root@exclamatory scripts]# at -c 12
    #!/bin/sh
    # atrun uid=0 gid=0
    # mail root 1
    umask 22
    XDG_SESSION_ID=197; export XDG_SESSION_ID
    HOSTNAME=exclamatory; export HOSTNAME
    SHELL=/bin/bash; export SHELL
    HISTSIZE=1000; export HISTSIZE
    SSH_CLIENT=172.16.30.1\ 60624\ 22; export SSH_CLIENT
    SSH_TTY=/dev/pts/1; export SSH_TTY
    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:\*.arc=01\;31:\*.arj=01\;31:\*.taz=01\;31:\*.lha=01\;31:\*.lz4=01\;31:\*.lzh=01\;31:\*.lzma=01\;31:\*.tlz=01\;31:\*.txz=01\;31:\*.tzo=01\;31:\*.t7z=01\;31:\*.zip=01\;31:\*.z=01\;31:\*.Z=01\;31:\*.dz=01\;31:\*.gz=01\;31:\*.lrz=01\;31:\*.lz=01\;31:\*.lzo=01\;31:\*.xz=01\;31:\*.bz2=01\;31:\*.bz=01\;31:\*.tbz=01\;31:\*.tbz2=01\;31:\*.tz=01\;31:\*.deb=01\;31:\*.rpm=01\;31:\*.jar=01\;31:\*.war=01\;31:\*.ear=01\;31:\*.sar=01\;31:\*.rar=01\;31:\*.alz=01\;31:\*.ace=01\;31:\*.zoo=01\;31:\*.cpio=01\;31:\*.7z=01\;31:\*.rz=01\;31:\*.cab=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:\*.webm=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
    MAIL=/var/spool/mail/root; export MAIL
    PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin; export PATH
    PWD=/opt/scripts; export PWD
    LANG=en_US.UTF-8; export LANG
    HISTCONTROL=ignoredups; export HISTCONTROL
    SHLVL=1; export SHLVL
    HOME=/root; export HOME
    LOGNAME=root; export LOGNAME
    SSH_CONNECTION=172.16.30.1\ 60624\ 172.16.3.10\ 22; export SSH_CONNECTION
    LESSOPEN=\|\|/usr/bin/lesspipe.sh\ %s; export LESSOPEN
    XDG_RUNTIME_DIR=/run/user/0; export XDG_RUNTIME_DIR
    OLDPWD=/opt; export OLDPWD
    cd /opt/scripts || {
             echo 'Execution directory inaccessible' >&2
             exit 1
    }
    ${SHELL:-/bin/sh} << 'marcinDELIMITER6058374d'
    echo -n
    
    marcinDELIMITER6058374d
    View Code

     

  • -l    显示at队列
  • -d   删除任务
  • -r    删除任务
  • -f    file      Reads the job from file rather than standard input
    此选项可用来执行脚本
  • -v   创建的时候显示job的执行时间
  • -t    指定时间,有固定格式      [[CC]YY]MMDDhhmm[.ss]

 

at时间定义

  • 如果指定的时间已过,则于第二天执行
  • 04:00 2009-03-1
  • now +count time-units
  • time-units 可以取      minutes  days months years weeks

 

demonstration:

  • at now +10 minutes <<< 'rm -rf /tmp/file'
  • at -v -M now +10 weeks <<-end
    rm -rf /tmp/file
    echo all done | mailx -s 'notification' sysadmin@vv.io
    end

  

posted @ 2020-10-23 18:00  ascertain  阅读(147)  评论(0编辑  收藏  举报