1、命令简介
batch命令的用法和at相似,batch命令只不过它不用指定任务执行的时间,而是在系统空闲时自动执行指定的任务。
2、命令用法
at [-V] [-q queue] [-f file] [-mldbv] TIME
at [-V] [-q queue] [-f file] [-mldbv] -t time_arg
at -c job [job...]
atq [-V] [-q queue]
atrm [-V] job [job...]
batch [-V] [-q queue] [-f file] [-mv] [TIME]
3、命令描述
at 和 batch 从标准输入或指定文件中读取稍后要执行的命令。
选项 | 描述 |
---|---|
at | 在指定的时间执行命令。 |
atq | 列出用户挂起的作业,除非用户是超级用户;那样的话,每个人的工作都列出来了。输出行(每个作业对应一行)的格式为:作业编号、日期、时间、作业类别。 |
atrm | 删除由作业编号标识的作业。 |
batch | 在系统负载水平允许时执行命令;换句话说,当平均负载下降到0.8以下,或调用atrun时指定的值。 |
at
允许相当复杂的时间规范,扩展了POSIX.2标准。它接受HH:MM
形式的时间,以在一天中的特定时间运行作业。(如果那个时间已经过去,则假定是第二天。),也可以指定midnight, noon或teatime(下午4点),可以在一天中加上AM或PM来表示在早上或晚上跑步。还可以通过在表单month-name day中提供日期和可选的年份,或者在表单MMDDYY
或MM/DD/YY
或DD.MM.YY
中提供日期,说明作业将在哪一天运行。日期的说明必须遵循时间的说明。还可以给出像now + count这样的时间单位,其中时间单位可以是分钟、小时、天或周,可以告诉at通过将时间后缀为today来运行今天的作业,并通过将时间后缀为tomorrow来运行明天的作业。
例如,从现在起3天内下午4点运行一项工作,你将在下午4点+ 3天内运行一项工作,在7月31日上午10点运行一项工作,你将在7月31日上午10点运行一项工作,你将在明天凌晨1点运行一项工作,你将在明天凌晨1点运行。
时间规范的确切定义可以在/usr/share/doc/at-3.1.8/timespec
中找到。
对于at和batch,从标准输入或使用-f选项指定的文件中读取命令并执行。工作目录、环境(除了变量TERM、DISPLAY和_)和掩码从调用时起就被保留。从su(1) shell调用的at或批处理命令将保留当前用户id。用户将收到来自命令的标准错误和标准输出(如果有的话)。邮件将使用命令/usr/sbin/sendmail
发送。如果从su(1) shell执行at,登录shell的所有者将收到邮件。
超级用户可以在任何情况下使用这些命令。对于其他用户,使用at的权限由/etc/at.allow
文件决定。允许和/etc/at.deny
.
如果文件/etc/at.allow
存在,只有其中提到的用户名被允许使用at
。
如果/etc/at.allow
不存在,检查/etc/at.deny
,然后允许它中没有提到的每个用户名使用at
。
如果两者都不存在,则只允许超级用户使用at
。
一个空的/etc/at.deny
意味着允许每个用户使用这些命令,这是默认配置。
可以通过/etc/sysconfig/atd
配置文件配置at守护进程,该文件包含一些设置示例。
4、命令选项
选项 | 描述 |
---|---|
-V | 将版本号打印到标准错误。 |
-q queue | 使用指定的队列。 队列名称由单个字母组成; 有效的队列指定范围从a到z和a到z。 a队列是at和b队列的默认值。 字母越高的队列越美观。 特殊的队列“=”是为当前正在运行的作业保留的。 |
如果一个作业被提交到一个用大写字母指定的队列中, 它将被视为当时已经提交给批处理。 如果atq给定了一个特定的队列, 它将只显示该队列中挂起的作业。 | |
-m | 当作业完成时,即使没有输出,也向用户发送邮件。 |
-f file | 从文件而不是标准输入中读取作业。 |
-l | 是atq的别名。 |
-d | 是atrm的别名。 |
-v | 显示作业执行的时间。 |
除非设置了环境变量POSIXLY_CORRECT,否则显示的时间将以“1997-02-20 14:50”的格式显示;然后,它将是“Thu Feb 20 14:50:00 1997”。
选项 | 描述 |
-c将命令行中列出的作业输出到标准输出。 | |
-t time_arg | |
| 在time_arg选项参数指定的时间提交要运行的作业, 该参数必须具有与touch(1) 实用程序的-t time 选项参数([[CC]YY]MMDDhhmm)指定的格式相同。 |
5、使用示例
[root@kvm1 ~]# batch
at> ls -al > ~/1.txt
at> <EOT>
job 3 at Thu Nov 25 20:48:00 2021
注意:按Ctrl + D
退出编辑执行。