Linux 中的 at 命令及示例 - Linux 命令行教程Linux 中的 at 命令及示例 - Linux 命令行教程Linux 中的 at 命令及示例 - Linux 命令行教程Linux 中的 at 命令及示例 - Linux 命令行教程
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

Linux 中的 at 命令及示例 - Linux 命令行教程

发表 admin at 2025年2月28日
类别
  • 未分类
标签

在 Linux 中,您可以使用各种命令自动化许多进程。您甚至可以自动化运行这些命令的过程。您可以使用 at 命令在将来的指定时间运行命令,否则它只会运行这些命令一次。您可以使用“明天”、“下周”等关键词指定时间。

您可能会认为 at 听起来类似于 cron – Linux 系统中内置的调度程序。 at 和 cron 之间的最大区别在于 at 只会运行一次,而 cron 用于按特定时间表重复运行事物。

在本教程中,我们将讨论 Linux 中 at 的常见应用及其一些选项,以帮助您最好地利用命令调度。在某些 Linux 发行版上,默认情况下可能不会安装此命令。在这种情况下,您需要手动安装它。我们将在下面提供相关说明。

在本教程中您将学习:

  • 如何在主要 Linux 发行版上安装 at

  • 如何在 Linux 上使用 at

在 Linux 中安装

如果默认情况下您的系统上尚未安装 at,您可以使用下面相应的命令通过系统的包管理器安装它。

要在 Ubuntu、Debian 和 Linux Mint 上安装 at:

$ sudo apt install at

要在 CentOS、Fedora、AlmaLinux 和 Red Hat 上安装 at:

$ sudo dnf install at

要在 Arch Linux 和 Manjaro 上安装 at:

$ sudo pacman -S at

常用选项

安装完成后,您可以开始使用它来安排将来要完成的作业。

Linux 中的 at 命令基本示例

  1. 作为一个基本示例,让我们使用 rm 命令在某个时间点(例如明天)删除文件或目录。但如果您是 Linux 新手,您可能会对 at 的工作原理感到非常困惑,因为它不是使用许多基本 Linux 命令的典型语法运行的。对于 at,您必须首先键入 at 命令本身,然后再键入其后的指定时间。然后,您将按 Enter 并在下面显示的提示中键入所需的命令。 at 还会警告命令将在哪个 shell 中运行。

    $ at tomorrow
    at> rm file01
    

    输入命令后,您可以使用 Ctrl + Z 取消并停止 at 提示,也可以使用 Ctrl + D< 保存并确认作业/代码>。

  2. 如果您想知道忘记了计划在多个不同时间执行的作业该怎么办,请不要担心。您可以使用 -l 选项和 at 在列表中自由查看所有作业。或者,您可以简单地运行atq命令来达到相同的效果。

    $ at -l
    

  3. 您可能已经注意到,使用 at 语法中的时间表达式(例如 tomorrow 或 tuesday),默认情况下会安排作业在那些日子里的当前时间。您可以通过多种方式进一步指定时间。在此示例中,我们在当前时间戳上额外添加 45 分钟。

    $ at tomorrow +45 minutes
    at> echo “hello”
    

  4. 我们还可以利用 at 直接指定要执行作业的确切时间。

    $at tomorrow 3:30
    at>echo “hello”
    

  5. 您还可以以与前面示例之一相反的方式指定执行作业的时间。我们可以确定确切的时间并从现在开始添加额外的天数,而不是像上面那样指定日期并从当前时间添加额外的时间。

    $ at 3:45 +2 days
    at>echo “hello”
    

  6. 正如您所看到的,我们可以应用的时间规范可能会变得相当复杂,以满足您在各种情况下的需求。但我们还没有讨论最简单的应用程序;我们可以安排一个作业在当前时间后几分钟或几小时内执行。如果您不完全熟悉 at,那么这种语法有点违反直觉。您需要指定now,然后在其后添加分钟或小时。

    $ at now +15 minutes 
    at>echo “hello”
    

  7. 要删除使用 at 安排的作业,您可以使用 -r 选项或 atrm 命令来达到相同的效果。为了使用此命令成功删除作业,您需要指定作业 ID。正如我们在前面的示例中所介绍的,at 可以与 -l 选项一起使用来显示您已安排的每个作业的列表。作业 ID 与作业的预计到达时间一起包含在列表中。例如:2021 年 9 月 9 日星期四 13 日 01:00:00。本例中的作业 ID 为 13。

    $ at -r  13
    

注意
您始终可以使用 man 命令来阅读有关 at 命令及其官方文档的更多信息。单击上一个链接可查看如何打开 Linux 系统上任何命令的手册页。

高级用法

at 非常简单,但正如您在本文的示例部分中所观察到的,它包含很多选项。其中许多选项都不太引人注目,甚至一些经验丰富的系统管理员也可能不知道它们。然而,它们绝对可以在各种情况下派上用场。在本教程的这一部分中,我们将向您展示一些我们认为有用的鲜为人知的 at 选项。

Linux 高级示例中的 at 命令

  1. 如果您已为用户帐户配置了电子邮件地址,并且您的系统设置为能够发送电子邮件,则在成功执行预定命令后,at 将默认向用户发送电子邮件通知。如果您希望避免此过程,可以使用 -M 选项强制 at 推迟通知。请注意,这些命令行选项区分大小写,如果您键入小写的 -m,您将无法获得所需的功能。

    $ at -M 
    at>echo “hello”
    
  2. 我们还可以将 -m 命令行选项传递给 at,以接收已执行作业的电子邮件通知,即使它不产生输出。

    $ at -m
    at>echo “hello”
    

结束语

在本教程中,我们学习了有关 Linux 中 at 的所有内容。对于经常需要安排将来执行的命令的用户和管理员来说,掌握 at 至关重要。对于重复执行命令,您始终可以使用 cron。否则,对于一次性使用,at 是完成这项工作的完美工具。

©2015-2025 Norria support@norria.com