batch 命令 #
batch
命令用于在系统负载较低时执行命令。它类似于at
命令,但不是在指定的时间执行,而是在系统负载降至特定阈值以下时执行。
语法 #
batch [选项] [时间]
常用选项 #
选项 | 描述 |
---|---|
-f 文件 |
从指定文件而不是标准输入读取命令 |
-q 队列 |
使用指定的队列字母 |
-m |
作业完成后发送邮件给用户 |
-v |
显示作业执行的时间 |
负载阈值 #
batch
命令会在系统平均负载降至特定阈值以下时执行作业。默认阈值通常为 0.8,但可以在系统配置中修改。
使用方法 #
与at
命令类似,batch
命令会打开一个交互式会话,让用户输入要执行的命令。输入完成后,按Ctrl+D
结束输入。
$ batch
warning: commands will be executed using /bin/sh
at> echo "System load is now acceptable" > /tmp/batch_test
at> date >> /tmp/batch_test
at>
at> ^D job 15 at Mon Jul 20 14:30:00 2025
## 常见用法
### 交互式提交批处理作业
```bash
batch
at> command1
at> command2
at> ^D
从文件提交批处理作业 #
batch -f commands.txt
使用重定向提交批处理作业 #
echo "command1; command2" | batch
查看和管理批处理作业 #
批处理作业使用与at
命令相同的队列系统,因此可以使用相同的命令来管理它们:
- 查看待处理的批处理作业:
atq
- 删除批处理作业:
atrm 作业号
与 at 命令的区别 #
特性 | at | batch |
---|---|---|
执行时间 | 在指定的时间执行 | 在系统负载较低时执行 |
优先级 | 按队列和提交时间决定 | 通常使用’b’队列,优先级较低 |
适用场景 | 需要在特定时间执行的任务 | 资源密集型任务,可以等待系统空闲时执行 |
相关命令 #
注意事项 #
batch
命令实际上是at -q b now
的别名- 批处理作业会在系统负载允许时尽快执行,而不是在特定时间
- 如果系统负载持续高于阈值,批处理作业可能会长时间等待
- 批处理作业的环境变量与提交时的环境变量相同