batch并非简单替换at,而是基于系统空闲负载(默认阈值1.5)触发的低优先级任务调度;它依赖atd将任务提交至b队列,不指定具体时间,适合日志归档等后台作业。

直接用 batch 替代 at 并不等于“换命令就行”,而是换一种执行逻辑:它不按精确时间运行,而是在系统空闲时自动触发。核心区别在于调度时机和资源占用策略。
batch 的本质是 at 的低负载变体
batch 不是独立服务,它底层调用 at,只是把任务提交到 b 队列(而非默认的 a 队列),并依赖 atd 守护进程判断系统负载是否低于阈值(默认 1.5)才执行。这意味着:
- 你无法指定具体时间,只能指定“尽快但别抢资源”
- 任务可能延迟几分钟甚至更久,取决于当时 CPU 和 I/O 负载
- 它适合计算密集、不影响响应的后台作业,比如日志归档、批量数据转换
基本用法:和 at 类似,但省略时间参数
不需要写时间,直接输入命令或重定向脚本:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 交互式提交:
batch<br>at> tar -cf /backup/home.tar /home<br>at> <strong>Ctrl+D</strong>
- 管道方式:
echo "find /tmp -name '*.log' -delete" | batch - 从文件读取:
batch 或 <code>batch -f cleanup.sh
控制优先级与队列(可选)
batch 默认使用 b 队列,但你可以显式指定其他低优先级队列(c–z),数值越靠后优先级越低:
- 提交到
z队列(最低优先级之一):at -q z now + 1 minute (注意:这不是 <code>batch,但效果类似) -
batch本身不支持-q,如需更细粒度控制,直接用at -q加时间偏移模拟
验证与管理任务
batch 提交的任务仍归 at 系统管理,查看和取消方式相同:
- 列出所有待执行任务(含 batch):
atq—— 输出中会显示队列标识,如job 7 at Tue Jul 29 23:58:00 2026 [b] - 取消指定任务:
atrm 7 - 确认
atd正在运行:systemctl is-active atd,若为inactive需先启动










