Linux at 命令

17 Mar 2025 | 5 分钟阅读

Linux 的 at 命令 用于在指定时间仅执行一次计划任务,而无需编辑配置文件。它是 cron 作业调度器的替代方案。如果我们想在一段时间后执行某个进程,例如关闭系统、进行备份、发送电子邮件作为提醒等,它会很有用。

at 命令 能够在一个指定的时间和日期,或者在一个给定的时间间隔执行命令或脚本。我们可以使用分钟、小时、天或周来指定时间。它还允许使用一些关键词,如 midnight (午夜)teatime (下午茶时间,通常指下午4点)

注意:它不能用于重复性任务,对于重复性任务,请使用 Linux crontab。

atqatrm 命令也是 at 命令的一部分。让我们简要了解这两个命令。

atq 命令: atq 命令用于显示用户的待处理任务。如果用户是 root 用户,它将列出所有任务。否则,它将列出特定用户的作业。输出格式为任务 ID、日期、小时、队列和用户名。

atrm 命令: 它用于删除任务,通过作业编号标识。

选项

“at”命令支持各种选项使其更加具体。at 命令提供的选项如下

  • -V: 用于将数字显示到标准错误并成功退出。
  • -q: 用于指定队列。队列名称由一个字母组成。范围从 a 到 z 或 A 到 Z。队列是默认队列,b 队列用于批处理。字母越高的队列优先级越高。'=' 队列是一个特殊队列;它保留给当前正在运行的作业。
  • -m: 用于在作业成功执行时向用户发送邮件。如果没有输出,它将起作用。
  • -M: 用于从不向用户发送邮件。
  • -f: 用于从文件中读取作业,而不是从标准输出读取。
  • -t: 用于指定运行作业的时间;格式为 [[CC]YY]MMDDhhmm[.ss]。
  • -l: -l 选项是 atq 命令的别名。
  • -r: -r 选项是 atrm 命令的别名。
  • -d: -d 选项是 atrm 命令的别名。
  • -b: -b 选项是 batch 命令的别名。
  • -v: -v 选项用于在执行前显示作业的时间。

要使用 at 命令,我们必须在系统上安装它。让我们了解如何安装它。

在 Linux (Ubuntu) 中安装 at 命令

要安装 at 命令,请执行以下命令

上面的命令将要求输入系统密码,输入密码,然后按 ENTER 键。它将启动一个守护进程并将 at 命令安装到您的机器上。请看下面的输出

Linux at command

at 命令安装完成后,我们必须启动并启用atd服务。要启动并启用 atd 服务在启动时运行,请执行以下命令

上面的命令将启动并启用 atd 服务。请看下面的输出

Linux at command

一旦在我们的机器上启用了 atd 服务,我们就可以安排任何任务或命令。现在,我们已准备好安排我们的第一个任务。让我们继续。

使用 at 安排第一个任务

要安排任务,请执行 at 命令,后跟时间或关键词。

例如,要将任务 sh back up 安排在晚上 10:20 执行,请执行以下命令

CTRL+D^d 键完成任务。上面的命令将在晚上 10:20 安排 backup.sh。请看下面的输出

Linux at command

我们也可以使用以下命令执行相同的过程

上面的命令将在晚上 10:20 执行 backup.sh。请看下面的输出

Linux at command

列出计划的任务

我们可以使用 atq 命令列出所有计划的任务。如果我们以 root 用户身份执行它,它将列出所有用户的作业。但是,如果我们不是 root 用户,它将仅列出特定用户的作业。执行以下命令

考虑下面的输出

Linux at command

从上面的输出中,我们可以看到我们只安排了一个任务。它分别显示任务 ID、日期和时间以及用户名。

删除计划的任务

我们可以使用 atrm 命令按任务 ID 删除计划的任务。要删除计划的作业,请执行 atrm 命令,后跟作业 ID,如下所示

上面的命令将删除任务 ID 为 2 的任务。请看下面的命令

Linux at command

从上面的输出中,我们可以看到如果一个作业被成功删除,它将不显示任何输出。要验证作业是否成功删除,请执行 atq 命令。

检查计划任务的内容

我们可以通过执行 atq 命令来列出任务。但是,如果我们想知道计划的是什么脚本或命令,我们需要执行 at 命令,并带上 '-c' 选项,后跟任务 ID。执行以下命令

上面的命令将显示任务 ID 为 2 的任务的内容。

at 命令的示例

at 命令的一些有用示例如下

示例 1:安排任务在早上 8:00 执行。

要将任务安排在早上 8:00 执行,请执行以下命令

输出

Linux at command

示例 2:安排任务在下周二早上 8:00 执行。

要将任务安排在下周二早上 8:00 执行,请执行以下命令

输出

Linux at command

示例 3:安排任务在即将到来的 4 月 15 日早上 8:00 执行。

要将任务安排在即将到来的 4 月 15 日早上 8:00 执行,请执行以下命令

输出

Linux at command

示例 4:安排任务在明天早上 8:00 执行。

要将任务安排在明天早上 8:00 执行,请执行以下命令。

输出

Linux at command

示例 5:安排任务在 2 小时后执行。

要安排一个任务在 2 小时后执行,请执行以下命令

输出

Linux at command

获取帮助

如果您在使用 'at' 命令时遇到任何问题,可以通过阅读手册来在终端中寻求帮助。要显示 at 命令的手册,请执行以下 man 命令

上面的命令将显示手册,其中包含有关 at 命令以及支持的选项的信息。请看下面的输出

Linux at command

要阅读更多内容,请滚动输出;要退出手册,请按 'q' 键。


下一主题Linux exit 命令