- 文档
- 教程
【免费下载链接】linux-command
Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux
本文是 Linux 命令大全仓库(linux-command)中 atrm 命令手册 的深度解读,围绕atrm在 Linux 一次性定时任务(at 任务)管理中的核心作用展开:先说明它删除任务的定位,再给出语法、选项与参数速查,最后通过"创建 → 查看 → 删除 → 验证"的完整实战流程,讲清它与at、atq、batch等命令的配合方式。读完本文,你将能够熟练使用atrm按任务号精准撤销不再需要的 at 定时任务。
atrm 是什么:at 任务队列的"撤销"工具
at命令用于在指定时间一次性执行任务(与循环执行的crontab相对),任务提交后由atd守护进程等待到点执行。但计划往往赶不上变化——任务提交后发现命令写错、时间定错,或者需求已经取消,此时就需要一个"撤销"入口。
atrm 命令(at remove)正是为此而生,它的作用是删除待执行任务队列中的指定任务,即从atd尚未执行的队列里按任务号移除目标作业,删除后该任务不会再被调度执行。
在 atrm 命令手册 中,仓库给出的命令定义是:
atrm用于删除待执行任务队列中的指定任务。
这个命令属于 GNU at 工具包的一员,与at、atq构成完整的任务生命周期:at负责创建任务、atq负责列出任务、atrm负责删除任务。从 命令索引数据 中可以看到仓库对它的检索描述为"删除待执行任务队列中的指定任务",是任务管理链路中不可缺失的收尾工具。
语法与参数速查
语法
atrm(选项)(参数)atrm的用法非常精简:选项可选,核心操作对象是通过参数传入的任务号。
选项
-V:显示版本号。atrm目前主要提供版本号查看选项:
-V:显示atrm的版本号。通常输出来自 GNU at 工具包,例如在 atq 命令手册 中,atq -V的实测输出为atq (GNU at) 3.1.20,atrm -V与之同源。
参数
- 任务号:指定待执行队列中要删除的任务。任务号由
at在提交任务时生成并回显(如job 7 at 2013-01-08 17:00中的7),可通过atq查询得到。
任务号是关键参数,它精确标识队列中的唯一任务,atrm会据此找到并删除对应的任务文件。因此,删除前务必先通过atq确认目标任务号,避免误删其他作业。
实战:从创建到删除的完整流程
原文档给出了一个非常直观的完整示例,下面结合 at 命令手册 和 atq 命令手册 中的内容,把整条链路串起来演示。
第一步:用 at 创建定时任务
先使用at提交一个待执行任务,例如创建在 10 分钟后输出内容的任务:
[root@localhost ~]# at now + 10 minutes at> echo 1111 at> <EOT> job 3 at Fri Apr 26 12:56:00 2013在at>提示符下输入要执行的命令,最后用<EOT>(Ctrl+D)结束输入。返回的job 3就是本次任务的任务号。
第二步:用 atq 确认任务与任务号
任务提交后,尚未执行前可以用atq查看系统中已经排队的任务:
[root@localhost ~]# atq 2 Mon May 17 08:00:00 2010 a root 1 Sat May 15 17:00:00 2010 a root输出按行列出每个任务,第一列就是任务号(2、1),后面依次是执行时间、队列标识(a)与提交任务的用户(root)。这正是atrm需要的任务号来源——删除前先atq,是避免误删的黄金习惯。
第三步:用 atrm 删除任务
确认任务号后,直接将其作为参数传给atrm:
[root@localhost ~]# atrm 2 # 删除任务2命令执行后没有任何回显输出即表示删除成功。
验证删除结果
再次执行atq验证,被删除的任务已从队列中消失,其余任务不受影响:
[root@localhost ~]# atq 1 Sat May 15 17:00:00 2010 a root可以看到任务2已经不存在,任务1仍保留在队列中,说明atrm只针对指定任务号精准删除,不会波及队列中的其他作业。在 at 命令手册 中也有类似的对照场景:删除任务7后,atq输出中仅剩任务8。
进阶:队列与 at 家族命令的配合
任务队列与 -q 选项
at支持通过-q 队列指定新任务的队列名称,不同队列的调度优先级不同。例如:
[root@localhost ~]# at -q b 5pm+3 days at> /bin/ls at> <EOT> job 10 at 2013-01-08 17:00对应的,atq 命令手册 中展示了atq -q a只查询指定队列中任务的用法:
[root@localhost ~]# atq -q a 4 Fri Apr 26 13:06:00 2013 a root而atrm的参数是全局的任务号,不区分队列,只要拿到任务号即可跨队列删除,配合atq -q可以精确锁定目标。
与 batch 命令的关系
仓库中的 batch 命令手册 指出,batch用于在系统不繁忙时执行定时任务,用法与at相似。batch创建的任务同样进入 at 任务队列,任务号也由atq统一列出,因此同样可以使用atrm按任务号删除。这意味着atrm是at、batch两条任务提交路径共用的"撤销出口"。
查看任务内容:at -c
删除之前,如果担心任务号对不上或记不清任务内容,可以先通过at -c 作业号查看已排队任务的完整脚本内容:
[root@localhost ~]# at -c 8 #!/bin/sh # atrun uid=0 gid=0 # mail root 0 umask 22此处省略n个字符 date >/root/2013.log确认无误后再执行atrm删除,可以最大限度避免误操作。
使用注意事项
- 删除前先确认任务号:
atrm只接受任务号,任务号必须来自at提交时的回显或atq的列表输出,不要在未确认的情况下凭记忆输入。 - 权限边界:
atrm直接作用于待执行队列中的任务文件,一般只有任务属主(或 root)能够删除对应任务,普通用户无法删除他人提交的任务。 - 仅对未执行任务有效:任务一旦到点被
atd执行完毕,就会从队列中移除,此时atrm已无对象可删;要管理已经执行过的任务或周期性任务,需要使用crontab等其他机制。 - 删除不可逆:
atrm删除任务后会移除对应的任务文件,操作前应通过at -c确认任务内容,特别是批量清理时建议逐个核对任务号。
在 linux-command 仓库中查阅与检索
linux-command 是一个搜集了 600 多个 Linux 命令的速查仓库,atrm的手册原文位于 command/atrm.md,与之配套的任务管理命令手册还有:
- at 命令手册:创建一次性定时任务,支持绝对/相对时间指定
- atq 命令手册:列出当前用户的 at 任务列表
- batch 命令手册:系统空闲时执行定时任务
仓库通过 dist/data.json 建立命令索引,其中atrm条目记录了名称、路径/atrm与描述"删除待执行任务队列中的指定任务",方便以 JSON 数据的方式在程序中检索命令信息。需要快速查阅其他命令时,也可以直接浏览command/目录下以命令名命名的 Markdown 文件。
小结
atrm虽然只有一个-V选项和任务号参数,却是 at 一次性任务管理闭环中关键的"撤销键":配合at创建、atq查询、at -c检查,可以安全地按任务号精准删除队列中不再需要的任务。掌握"先atq查号、再atrm删除、最后atq复核"的操作顺序,就能在日常服务器运维中稳妥管理临时计划任务。
- 文档
- 教程
【免费下载链接】linux-command
Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux
相关推荐
Bash-Oneliner定时任务:cron与at命令完全指南
Bash Oneliner定时任务:cron与at命令完全指南 你还在手动执行重复任务?10分钟掌握Linux定时任务终极方案 读完本文你将获得: cron与a
文档教程技术博客Kue 任务取消与删除:灵活管理队列中的任务
Kue 任务取消与删除:灵活管理队列中的任务 在使用 Kue 进行任务队列管理时,经常会遇到需要取消或删除队列中任务的场景。无论是因为业务需求变更、任务参数错误
任务调度后端消息队列Helicone任务队列:异步处理与定时任务
Helicone任务队列:异步处理与定时任务 你是否还在为AI应用中的任务调度问题而烦恼?当用户请求高峰来临时,系统是否经常出现响应延迟或任务堆积?Helico
人工智能LLM 网关LLMOps可观测性后端
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考