Linux命令之at详解程序员

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).选项

-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).实例

使用相对时间执行命令

[ [email protected] 桌面 ]# ls 
[ [email protected] 桌面 ]# 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 
[ [email protected] 桌面 ]# ls 
1.txt 
[ [email protected] 桌面 ]# vim 1.txt    //进入到1.txt里可以看到输出内容 

使用绝对时间执行命令

[ [email protected] 桌面 ]# at 12:00 
at> ls />2.txt 
at> <EOT> 
job 5 at 2018-07-21 12:00 

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

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

根据作业ID查看执行细节

[[email protected] 桌面]# at now +2 minutes 
at> echo "at now +2 minutes">3.txt 
at> job 6 at 2018-07-21 12:11 
[[email protected] 桌面]# 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 
[email protected]=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导入

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/aiops/2864.html

(0)
上一篇 2021年7月16日 01:22
下一篇 2021年7月16日 01:22

相关推荐

发表回复

登录后才能评论