news 2026/9/30 1:46:00

linux-command 命令详解:atrm 删除 at 定时任务队列中的指定任务

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
linux-command 命令详解:atrm 删除 at 定时任务队列中的指定任务
  • 文档
  • 教程

【免费下载链接】linux-command

Linux命令大全搜索工具,内容包含Linux命令手册、详解、学习、搜集。https://git.io/linux

项目地址:https://gitcode.com/GitHub_Trending/linux/linux-command
点击查看免费下载

本文是 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

项目地址:https://gitcode.com/GitHub_Trending/linux/linux-command
点击查看免费下载

相关推荐

上一篇:Hyperf框架安装指南:从环境准备到项目创建
下一篇:Golden-Layout项目中的位置选择器(Location Selectors)详解

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/30 1:44:51

DLSS Swapper:一键替换游戏超分DLL到新版,3秒回滚

DLSS Swapper&#xff1a;一键替换游戏超分DLL到新版&#xff0c;3秒回滚 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 盯着那个写死的 2.1 版本号看了三秒 你盯着游戏设置里的 DLSS 版本 2.1&#xff0c;搜「DLSS …

作者头像 李华
网站建设 2026/9/30 1:44:45

高并发服务的防御性编程与容量规划

高并发服务的防御性编程与容量规划在构建面向生产的高并发服务时&#xff0c;系统最大的敌人往往不是来自外部的正常流量&#xff0c;而是系统自身对异常情况的脆弱性&#xff1a; 下游某个慢 API 响应变慢&#xff0c;导致上游线程池全部占满并产生雪崩&#xff1b;突发的流量…

作者头像 李华
网站建设 2026/9/30 1:44:05

Redis 在 AI 时代的定位演进:从缓存利器到全栈内存数据平台

Redis 在 AI 时代的定位演进&#xff1a;从缓存利器到全栈内存数据平台在大语言模型&#xff08;LLM&#xff09;、多模态生成式 AI 与复杂智能体&#xff08;Agent&#xff09;系统席卷全球软件架构的浪潮下&#xff0c;Redis 这一经典的开源分布式内存组件&#xff0c;正在经…

作者头像 李华
网站建设 2026/9/30 1:43:42

CI/CD 智能化九月全景总结:把智能诊断与自动化自愈做进每日工作流

CI/CD 智能化九月全景总结&#xff1a;把智能诊断与自动化自愈做进每日工作流在现代软件交付流水线&#xff08;CI/CD&#xff09;的日常运转中&#xff0c;“流水线变红”曾经是每一个开发者最不想面对的心智折磨&#xff1a; 开发者为了查一个简单的 Lint 警告或偶发的网络超…

作者头像 李华
网站建设 2026/9/30 1:41:17

【动手学深度学习】深入浅出深度学习之PyTorch基础

&#x1f31e;一、实验目的 正确理解深度学习所需的数学知识&#xff1b;学习一些关于数据的实用技能&#xff0c;包括存储、操作和预处理数据&#xff1b;能够完成各种数据操作&#xff0c;存储和操作数据&#xff1b;PyTorch基础&#xff0c;完成《动⼿学深度学习》预备知识2…

作者头像 李华
网站建设 2026/9/30 1:40:13

C++结构体排序全解析:从sort原理到比较器写法与避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华