稍候运行命令。
at [ -c | -k | -s | -q Queue ] [ -m ] [ -f File ] { -t Date |Time [ Day ] [ Increment ] }
at -l [ -o ] [ Job ... | -q Queue ]
at -n [ User ]
at 命令从标准输入读取稍后要运行的命令的名称并允许您指定何时应运行该命令。
除非您重定向,否则 at 命令将有关已调度命令的标准输出和标准错误发送给您。它还将作业编号和已调度时间写至标准错误。
当执行 at 命令时,它保留当前进程环境。它不保留打开的文件描述符、陷阱和优先级。
/var/adm/cron/at.allow 和 /var/adm/cron/at.deny 文件控制哪些用户可以使用 at 命令。具有 root 用户权限的用户可以创建、编辑或删除这些文件。这些文件中的条目是用户登录名,每行一个名称。以下是 at.allow 文件的示例:
root nick dee sarah
如果 at.allow 文件存在,只有其登录名存在于此文件中的用户可以使用 at 命令。系统管理员可以通过在 at.deny 文件中列出用户登录名来显式地阻止该用户使用 at 命令。如果只存在 at.deny 文件,任何其名称不出现在该文件中的用户可以使用 at 命令。
如果以下内容之一为真,则用户不能使用 at 命令:
如果 at.allow 文件不存在,且 at.deny 文件不存在或为空,则只有具有 root 用户权限的人员可以用 at 命令提交作业。
要调度稍后要运行的作业,您必须指定要启动此作业的时间。可以通过使用 -t Date 标志或 Time、Day 和 Increment 参数来指定时间。最多可以以每秒一次的密度在任何给定的运行队列中调度 60 个作业。如果提交的作业超过了处理能力,对于 60 以后的每个作业,将在 /var/spool/cron/atjobs/ 中创建一个文件 _at<pid>,而该文件也可由最终用户安全地删除。
[[CC]YY]MMDDhhmm[.SS]
Date 变量中的数字如下定义:
CC | 指定年份的前两位数字(纪元)。 |
YY | 指定年份的后两位数字。 |
MM | 指定一年的月份(01 到 12)。 |
DD | 指定一月中的具体日子(01 到 31)。 |
hh | 指定一天的钟点(00 到 23)。 |
mm | 指定一小时中的具体分钟。(00 到 59)。 |
SS | 指定一分钟中的具体秒数(00 到 59)。 |
CC 和 YY 数字是可选的。如果两者都不给出,则假定为当前年份。如果指定 YY,但未指定 CC,则 CC 数字如下定义:
最终生成的时间受到 TZ 环境变量的值的影响。
Time 参数可指定为后跟可选后缀的数字。at 命令将一位和二位数字解释为小时。它将四位数字解释为小时和分钟。LC_TIME 语言环境范畴中的 T_FMT 项指定小时和分钟的顺序。缺省顺序是:小时后跟分钟。还可以用 :(冒号)将小时和分钟隔开。缺省顺序是 小时:分钟。
另外,您可以指定以下后缀之一:
如果不指定 am 或 pm,at 命令使用 24 小时制时钟。这些后缀可以跟在时间之后作为单独的参数或用空格隔开。am 和 pm 后缀是来自 LC_TIME 语言环境范畴中 AM_STR 和 PM_STR 项的定义值。后缀 zulu 指明时间是 GMT(格林威治标准时间)。
at 命令还识别以下作为 Time 参数特殊值的关键字:
可以将可选的 Day 参数指定为月份名称或具体日期(且可能是以逗号开头的年份),或星期几。LC_TIME 语言环境范畴中的 D_FMT 项指定了月和日的顺序(缺省情况下,日跟在月之后)。LC_TIME 语言环境范畴中的 DAY_1 到 DAY_7 项指定了长日期名。LC_TIME 语言环境范畴中的 ABDAY_1 到 ABDAY_7 项指定了短日期名。LC_TIME 语言环境范畴中的 MON_1 到 MON_12 项指定了长月份名。LC_TIME 语言环境范畴中的 ABMON_1 到 ABMON_12 项指定了短月份名。缺省情况下,长名完全拼写出来;而对于工作日短名缩写为两个或更多字符,对于月份,短名则缩写为三个字符。
at 命令识别 today 和 tomorrow 作为 Day 参数的特殊缺省值。如果指定的时间晚于当前时间,则 today 值是 Day 的缺省值;如果指定时间早于当前时间,则 tomorrow 值是缺省值。如果指定月份早于当前月份(且没有给出年份),则明年是缺省年份。
-c | 要求使用 csh 命令来执行此作业。 |
-fFile | 使用指定文件而非用标准输入作为输入。 |
-F | 禁止删除验证。请将此标志和 -r 标志一起使用。 |
-i | 指定交互式删除。请将此标志和 -r 标志一起使用。 |
-k | 要求使用 ksh 命令来执行此作业。 |
-l | 报告已调度的作业。如果您具有 root 用户权限,则您可以获取其它用户发出的作业。 |
-m | 发送给用户有关成功执行命令的消息。 |
-n [ User ] | 报告您的队列中的文件数。如果您具有 root 用户权限,则您可以获取其它用户的队列的信息。 |
-o | 按调度顺序列出作业。此标志仅和 -l 标志一起使用才有效。 |
-q Queue | 指定在哪个队列中调度要提交作业。当和 -l 标志一起使用时,报告限于 Queue 变量指定的队列。缺省情况下,at 作业在 a 队列中调度。b、c 和 d 队列分别为 batch 作业、cron 作业和 sync 作业而保留。 |
-r Job... | 除去先前由 at 或 batch 命令调度的 Job,其中 Job 是 at 或 batch 命令指定的编号。如果您不具有 root 用户权限(请参阅 su 命令),则您只能除去自己的作业。atrm 命令可用来让 root 用户除去其它用户发出的作业或某特定用户发出的所有作业。 |
-s | 要求使用 bsh 命令(Bourne shell)来执行此作业。 |
-t Date | 提交作业以使其在 Date 变量指定的时间运行。 |
-u User | 删除指定用户的所有作业。如果和 -r 标志一起使用,则不指定 Job 变量(正确的语法是 at -r -u User)。 |
Day | 将可选的 Day 参数指定为月份名称或具体日期(且可能是以逗号开头的年份),或星期几。 |
Increment | 可选Increment 参数可以为以下之一: |
审计事件:如果正确配置并启用审计子系统,则每次执行 at 命令时,将生成以下审计记录(事件):
事件 | 信息 |
---|---|
AT_JobAdd | 列出 at 正运行的作业、任务完成的时间和发出该命令的用户。 |
有关如何正确选择和对审计事件进行分组以及如何配置审计事件数据收集的更多详细信息,请参阅《AIX 5L V5.2 安全指南》中的『建立审计』。
该命令返回以下出口值:
0 | at 命令成功提交、除去或列出一个或多个作业。 |
>0 | 发生错误。 |
如果 uuclean 在您的当前目录中,请输入:
at 5 pm Friday uuclean <Ctrl-D> at now next week uuclean <Ctrl-D>
如果 uuclean 在 $HOME/bin/uuclean 中,请输入:
at now + 2 days $HOME/bin/uuclean <Ctrl-D>
echo uuclean | at 3:00 pm January 24 echo uuclean | at 3 pm Jan 24 echo uuclean | at 1500 jan 24
echo "ksh shellfile" | at now tomorrow
/var/adm/cron/FIFO | 指定的管道,当用 crontab 或 at 命令提交新作业时,它将消息发送到 cron 守护进程。 |
/usr/bin/at | 包含 at 命令。 |
/var/adm/cron | 包含主 cron 目录。 |
/var/adm/cron/at.allow | 指定许可用户的列表。 |
/var/adm/cron/at.deny | 指定被拒绝用户的列表。 |
/var/spool/cron/atjobs | 包含 at 的假脱机区域目录。 |
atq 命令、atrm 命令、auditpr 命令、batch 命令、bsh 命令、kill 命令、ksh 命令、mail 命令、nice 命令、ps 命令、sh 命令、su 命令。
cron 守护进程。
enviroment 文件。
《AIX 5L V5.2 安全指南》中的『审计概述』提供了有关审计和审计事件的更多信息。
《AIX 5L V5.2 系统管理指南:操作系统与设备》中的『输入与输出重定向概述』描述了操作系统如何处理输入与输出。
《AIX 5L V5.2 系统管理指南:操作系统与设备》中的『编程的本地语言支持概述』解释了整理顺序、等同类和语言环境。
《AIX 5L V5.2 系统用户指南:操作系统与设备》中的『Shell 概述』描述了什么是 shell、shell 的不同类型以及它们如何影响解释命令的方式。