At 允许相当复杂的时间指定,它扩展了 POSIX.2 标准。它接受 HH:MM 的时间式样,用来指定在一天的某个时间运行一个作业。 (如果时间已经过了则假定为第二天。)你可以指定 midnight (午夜)、 noon (中午) 或 teatime (下午4点),你可以用 AM 或 PM 后缀指定一天的上午或下午。你可以给出 month-name day 加上可选 的年份的式样用来指定运行 at 的日期,或者给出 MMDDYY 、 MM/DD/YY 或 DD.MM.YY 式样用来指定运行 at 的日期。日期的指定 必须跟在时间指定的后面。你也可以给出象 now + 计数 时间单位 的式样,这里的时间单位可以是 minutes 、 hours 、 days 或 weeks, 你可以给时间加一个 today 后缀来指定 at 今天运行作业,可以 给时间加一个 tomorrow 后缀来指定 at 明天运行作业。
例如,要在三天以后的下午 4 点运行一个作业,at 时间参数可以 指定为 4pm + 3 days。 要在7月31日上午10:00运行一个作业, at 时间参数可以指定为 10am Jul 31, 要在明天上午1点运行一个 作业,at 时间参数可以指定为 1am tomorrow。
时间指定的精确的定义可以在 /usr/doc/at-3.1.7/timespec 找到。
对于 at 和 batch 两者,从标准输入或以 -f 选项指定的文件中 读取命令并执行之。工作路径、环境变量(除了 TERM、 DISPLAY 和 _)、 umask 从所期望的时间起保持不变。从一个从执行 su(1) 命令得到的 shell 中调用的 at - 或 batch - 命令将保持当前的 userid。 用户的命令的标准错误输出和标准输出将用邮件发给用户。发送邮件 使用命令 /usr/sbin/sendmail。 从一个从执行 su(1)命令得到的 shell 中执行了 at ,登录 shell 的所有者将接到邮件。 译注:userid 是用户标识的意思。umask 是与每个进程相关联的文件 方式创建屏蔽字。
超级用户可以在任何情况下使用这些命令。对于其他用户,使用 at 的权限由文件 /etc/at.allow 和 /etc/at.deny 确定。
如果文件 /etc/at.allow 存在,在其中提及的用户名被允许使用 at 命令。
如果 /etc/at.allow 不存在,而 /etc/at.deny 存在,所有在 /etc/at.deny 中未提及的用户被允许使用 at 命令。
如果两者均不存在,只用超级用户可以使用 at 命令。
一个空的 /etc/at.deny 意味着所有用户均被允许使用这些命令, 这是缺省的配置。