batch:在系统负载水平允许的时候执行命令

###作用

在系统负载水平允许的时候执行命令。换句话说,当平均负载低于0.8,或降到了在atrun文件中指定的期望值时运行。

###用法

1
batch [-V] [-q 队列] [-f 文件] [-mv] [time]

###主要选项如下。

1
2
3
4
5
-V 输出版本号。
-q 选用q参数则可选队列名称,队列名称可以是a~z和A~Z之间的任意字母。队列字母顺序越高则队列优先级别越低。
-f 从文件中读取命令或Shell脚本,而非在提示后指定它们。
-m 执行完作业后发送电子邮件给用户。
-v 显示作业将要执行的时间。

###应用实例如下

(1)配置batch作业

要在系统平均负载降到0.8以下时执行某项一次性的任务时,使用batch命令。键入batch命令后,”at>“提示就会出现。键入要执行的命令,按Enter键,然后键入”Ctrl-D”。你可以指定多条命令,方法是键入每一条命令后按Enter键。键入所有命令后,按Enter键转入一个空行,然后再键入”Ctrl-D”。你也可以在提示后输入Shell脚本,在脚本的每一行后按Enter键,然后在空行处键入”Ctrl-D”来退出。系统平均负载一降到0.8,这组命令或脚本就会被执行。如果这组命令或脚本试图在标准输出中显示信息,该输出会用电子邮件的方式被邮寄给用户。

(2)进阶应用:控制对at和batch的使用

通过/etc/at.allow和/etc/at.deny文件可以限制对at和batch命令的使用。这两个使用控制文件的用法都是每行一个用户。两个文件都不允许使用空白字符。如果控制文件被修改了,at守护进程不必被重启。每次用户试图执行at或batch命令时,使用控制文件都会被读取。不论控制文件如何规定,超级权限用户总是可以执行at和batch命令。如果at.allow文件存在,只有其中列出的用户才能使用at或batch命令,at.deny文件会被忽略。如果at.allow文件不存在,所有在at.deny文件中列出的用户都将被禁止使用at和batch命令。