.TH AT 1 "Nov 1996" local "Linux Programmer's Manual" .SH NAME at, batch, atq, atrm \- 排队、检查或删除以后要执行的作业。 .SH 总览 .B at .RB [-V] .RB [-q .IR 队列] .RB [-f .IR 文件] .RB [-mldbv] .B 时间 .B "at -c" .I 作业 .RI [作业...] .B atq .RB [-V] .RB [-q .IR 队列] .RB [-v] .br .B atrm .RB [-V] .I 作业 .RI [作业...] .br .B batch .RB [-V] .RB [-q .IR 队列] .RB [-f .IR 文件] .RB [-mv] .RB [时间] .SH 描述 .B at 和 .B batch 从标准输入或一个指定的文件读取命令,这些命令在以后某个时间用 .BR /bin/sh 执行。 .TP 8 .BR at 在指定的时间执行命令。 .TP 8 .BR atq 列出用户的等待执行的作业;在用户是超级用户的情况下,列出所有人的作业。 .TP 8 .BR atrm 删除作业。 .TP 8 .BR batch 在系统负载水平允许的时候执行命令;换句话说,当平均负 载降到低于0.8,或降到了在 atrun 文件中指定的期望值时运行。 译注:atrun 文件参见 atd 手册页。 .PP .B At 允许相当复杂的时间指定,它扩展了 POSIX.2 标准。它接受 .B HH:MM 的时间式样,用来指定在一天的某个时间运行一个作业。 (如果时间已经过了则假定为第二天。)你可以指定 .B midnight (午夜)、 .B noon (中午) 或 .B teatime (下午4点),你可以用 .B AM 或 .B PM 后缀指定一天的上午或下午。你可以给出 .B month-name day 加上可选 的年份的式样用来指定运行 at 的日期,或者给出 .B MMDDYY 、 .B MM/DD/YY 或 .B DD.MM.YY 式样用来指定运行 at 的日期。日期的指定 必须跟在时间指定的后面。你也可以给出象 .B now \+ .I 计数 时间单位 的式样,这里的时间单位可以是 .B minutes 、 .B hours 、 .B days 或 .B weeks, 你可以给时间加一个 .B today 后缀来指定 .B at 今天运行作业,可以 给时间加一个 .B tomorrow 后缀来指定 .B at 明天运行作业。 .PP 例如,要在三天以后的下午 4 点运行一个作业,at 时间参数可以 指定为 .B 4pm \+ 3 days。 要在7月31日上午10:00运行一个作业, at 时间参数可以指定为 .B 10am Jul 31, 要在明天上午1点运行一个 作业,at 时间参数可以指定为 .B 1am tomorrow。 .PP 时间指定的精确的定义可以在 .IR /usr/share/doc/at/timespec 找到。 .PP 对于 .BR at 和 .BR batch 两者,从标准输入或以 .B -f 选项指定的文件中 读取命令并执行之。工作路径、环境变量(除了 .BR TERM、 .BR DISPLAY 和 .BR _ )、 umask 从所期望的时间起保持不变。从一个从执行 .B su(1) 命令得到的 shell 中调用的 .B "at "\- 或 .B "batch "\- 命令将保持当前的 userid。 用户的命令的标准错误输出和标准输出将用邮件发给用户。发送邮件 使用命令 .BR /usr/sbin/sendmail。 从一个从执行 .B su(1)命令得到的 shell 中执行了 .B at ,登录 shell 的所有者将接到邮件。 译注:userid 是用户标识的意思。umask 是与每个进程相关联的文件 方式创建屏蔽字。 .PP 超级用户可以在任何情况下使用这些命令。对于其他用户,使用 at 的权限由文件 .I /etc/at.allow 和 .I /etc/at.deny 确定。 .PP 如果文件 .I /etc/at.allow 存在,在其中提及的用户名被允许使用 .BR at 命令。 .PP 如果 .I /etc/at.allow 不存在,而 .I /etc/at.deny 存在,所有在 .I /etc/at.deny 中未提及的用户被允许使用 .BR at 命令。 .PP 如果两者均不存在,只用超级用户可以使用 .BR at 命令。 .PP 一个空的 .I /etc/at.deny 意味着所有用户均被允许使用这些命令, 这是缺省的配置。 .SH 选项 .TP 8 .B -V 在标准错误上输出版本号。 .TP 8 .B -q queue 使用指定的队列。一个队列用一个字母标定,有效的的队列标定的 范围是从a到z和从A到Z。at 的缺省队列是 a,batch 的缺省队列是 b。队列的字母顺序越高,则队列运行时越谦让(运行级别越低)。 指定的队列 "=" 保留给当前运行的作业所在的队列。 .P 如果一个作业被提交到一个以大写字母标定的队列,则与提交到 batch 同样对待。如果给 .BR atq 指定一个队列,则只显示在此指定 队列中的作业。 .TP 8 .B -m 当作业完成时即使没有输出也给用户发邮件。 .TP 8 .B -f file 从文件而不是标准输入中读取作业信息。 .TP 8 .B -l 是 .B atq 的别名。 .TP 8 .B -d 是 .B atrm 的别名。 .TP 8 .B -v 对于 .B atq, 显示完整的在队列中未被删除的作业,对于其他 命令,显示作业将要执行的时间。 .P 显示的时间的格式类似于"1997-02-20 14:50",但如果设置了 .B POSIXLY_CORRECT 环境变量之后,格式类似于"Thu Feb 20 14:50:00 1996"。 .TP 8 .B -c 连接命令行中列出的作业并输出到标准输出。 .SH 相关文件 .I /var/spool/at .br .I /var/spool/at/spool .br .I /proc/loadavg .br .I /var/run/utmp .br .I /etc/at.allow .br .I /etc/at.deny .SH 参见 cron(1), nice(1), sh(1), umask(2), atd(8) .SH 缺陷 在 Linux 下正确的批处理操作依赖于挂装在/proc 上的一个 .IR proc - 类型的目录的存在。 .PP 如果文件 .I /var/run/utmp 不可获得或已经损坏,或者在 .B at 所期 待的时间用户没有登录,向在环境变量 .BR LOGNAME 中找到的 userid 发送邮件。如果 .BR LOGNAME 未定义或是空的,假定为当前的 userid。 .PP 当前实现的 .B at 和 .B batch 在用户竞争资源的时候是不适合的。 如果你的站点是这种情况,你可以考虑其他的批处理系统, 例如 .BR nqs。 .SH 著作者 AT 大部分是由Thomas Koenig写的。ig25@rz.uni-karlsruhe.de. .SH "[中文版维护人]" .B mhss .br 主要参照了: .BR Linux 实用大全 / 陈向阳,方汉 编著. -北京: 科学出版社,1998.8 .SH "[中文版最新更新]" .BR 2000/10/27 .SH "《中国linux论坛man手册页翻译计划》:" .BI http://cmpp.linuxforum.net .SH "跋" .br 本页面中文版由中文 man 手册页计划提供。 .br 中文 man 手册页计划:\fBhttps://github.com/man-pages-zh/manpages-zh\fR