侧边栏壁纸
Linux入门自学网博主等级

每日学一条Linux命令,终成Linux大神

  • 累计撰写 725 篇文章
  • 累计创建 143 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Linux atrm命令教程:如何删除at命令创建的定时任务(附实例详解和注意事项)

Linux atrm命令介绍

atrm命令是at命令的配套工具,用于删除at命令创建的待执行任务。atrm命令的全称是at remove,意思是移除at队列中的任务。atrm命令可以根据任务编号或用户名称来删除任务,也可以一次删除多个任务。atrm命令可以帮助用户管理和取消自己的定时任务,避免不必要的资源占用和执行错误。

Linux atrm命令适用的Linux版本

atrm命令是一个标准的Linux命令,适用于大多数的Linux发行版,如Ubuntu, Debian, Fedora, CentOS等。如果某些Linux系统没有预装atrm命令,可以使用以下命令来安装:

  • Ubuntu/Debian: sudo apt install at
  • Fedora/CentOS: sudo yum install at (CentOS 7) 或 sudo dnf install at (CentOS 8)

安装完成后,需要启动atd服务,才能使用atrm命令。启动atd服务的命令如下:

  • Ubuntu/Debian: sudo service atd start
  • Fedora/CentOS: sudo systemctl start atd

如果要查看atd服务的状态,可以使用以下命令:

  • Ubuntu/Debian: sudo service atd status
  • Fedora/CentOS: sudo systemctl status atd

如果要让atd服务在系统启动时自动运行,可以使用以下命令:

  • Ubuntu/Debian: sudo update-rc.d atd enable
  • Fedora/CentOS: sudo systemctl enable atd

如果要停止或禁用atd服务,可以使用以下命令:

  • Ubuntu/Debian: sudo service atd stopsudo update-rc.d atd disable
  • Fedora/CentOS: sudo systemctl stop atdsudo systemctl disable atd

以下是在不同的Linux系统中使用atrm命令的示例:

[linux@bashcommandnotfound.cn ~]$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
[linux@bashcommandnotfound.cn ~]$ atq
1       Wed Dec 13 18:00:00 2023 a linux
2       Wed Dec 13 18:05:00 2023 a linux
[linux@bashcommandnotfound.cn ~]$ atrm 1
[linux@bashcommandnotfound.cn ~]$ atq
2       Wed Dec 13 18:05:00 2023 a linux
[linux@bashcommandnotfound.cn ~]$ atrm linux
[linux@bashcommandnotfound.cn ~]$ atq
[linux@bashcommandnotfound.cn ~]$
[linux@bashcommandnotfound.cn ~]$ cat /etc/os-release
NAME="CentOS Linux"
VERSION="8"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CENTOS_MANTISBT_PROJECT="CentOS-8"
CENTOS_MANTISBT_PROJECT_VERSION="8"
[linux@bashcommandnotfound.cn ~]$ atq
3       Wed Dec 13 18:00:00 2023 a linux
4       Wed Dec 13 18:05:00 2023 a linux
[linux@bashcommandnotfound.cn ~]$ atrm 3 4
[linux@bashcommandnotfound.cn ~]$ atq
[linux@bashcommandnotfound.cn ~]$

Linux atrm命令的基本语法

atrm命令的基本语法格式如下:

atrm [选项]... [任务编号]...

其中,选项可以是以下之一:

  • -a--all:删除所有的任务
  • -f--file:从文件中读取任务编号
  • -h--help:显示帮助信息
  • -V--version:显示版本信息

任务编号可以是一个或多个数字,表示要删除的任务的编号。如果不指定任务编号,atrm命令会从标准输入中读取任务编号。如果指定了用户名称,atrm命令会删除该用户的所有任务。

Linux atrm命令的常用选项或参数说明

atrm命令的常用选项或参数如下表所示:

选项/参数说明
-a--all删除所有的任务
-f--file 文件名从指定的文件中读取任务编号,每行一个编号
-h--help显示帮助信息
-V--version显示版本信息
任务编号一个或多个数字,表示要删除的任务的编号
用户名称一个有效的用户名称,表示要删除该用户的所有任务

Linux atrm命令的常见技巧或高级技巧

使用atrm命令删除指定时间段内的任务

如果要删除指定时间段内的任务,可以使用atq命令结合grep命令和awk命令来筛选出任务编号,然后传递给atrm命令。例如,如果要删除12月13日18点到19点之间的任务,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ atq | grep "Dec 13 18:" | awk '{print $1}' | xargs atrm

使用atrm命令删除指定命令的任务

如果要删除指定命令的任务,可以使用at -c命令结合grep命令和awk命令来筛选出任务编号,然后传递给atrm命令。例如,如果要删除执行echo命令的任务,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ at -c $(atq | awk '{print $1}') | grep -B 1 echo | grep "<" | awk -F"<" '{print $2}' | xargs atrm

Linux atrm命令的实例

以下是一些使用atrm命令的实例:

实例1:删除单个任务

如果要删除编号为1的任务,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ atrm 1

实例2:删除多个任务

如果要删除编号为2, 3, 4的任务,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ atrm 2 3 4

实例3:删除所有任务

如果要删除所有的任务,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ atrm -a

实例4:删除指定用户的所有任务

如果要删除用户linux的所有任务,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ atrm linux

实例5:从文件中读取任务编号并删除

如果要从文件中读取任务编号并删除,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ cat task.txt
1
3
5
[linux@bashcommandnotfound.cn ~]$ atrm -f task.txt

实例6:显示帮助信息

如果要显示atrm命令的帮助信息,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ atrm -h
Usage: atrm [-V] [-f file] [-a] [-] [job...]

实例7:显示版本信息

如果要显示atrm命令的版本信息,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ atrm -V
at version 3.1.23

实例8:从标准输入中读取任务编号并删除

如果要从标准输入中读取任务编号并删除,可以使用以下命令:

[linux@bashcommandnotfound.cn ~]$ echo -e "1\n2\n3" | atrm

注意事项

如果在执行atrm命令时,出现了bash: atrm: command not found的错误提示,说明系统没有安装atrm命令,或者atrm命令的路径没有添加到环境变量中。可以使用以下方法来解决:

  • 安装atrm命令:根据不同的Linux发行版,使用相应的包管理工具来安装at命令,例如sudo apt install atsudo yum install at等。安装完成后,需要启动atd服务,才能使用atrm命令。
  • 添加atrm命令的路径到环境变量:如果系统已经安装了atrm命令,但是没有添加到环境变量中,可以使用which atrm命令来查找atrm命令的路径,然后将其添加到环境变量中,例如export PATH=$PATH:/usr/bin等。或者可以使用绝对路径来执行atrm命令,例如/usr/bin/atrm等。
0

评论区