Linux at命令

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

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

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

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

atrm 命令:它用于删除由作业编号标识的任务。

at命令的参数

“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 选项是批处理命令的别名。
  • -v:-v 选项用于显示作业执行前的时间。

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

在 Linux (Ubuntu) 中安装 at 命令

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

sudo apt-get install at 

上面的命令将询问系统密码,键入密码,然后按 输入 键。它将启动一个守护进程并将 at 命令安装到您的计算机。请考虑以下输出:

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

systemctl start atd  
systemctl enable atd  

上述命令将启动并启用 atd 服务。请考虑以下输出:

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

使用 at 计划第一个任务

要计划任务,请执行 at 命令,后跟时间或关键字。

例如,要将任务 sh 备份安排在晚上 10:20,请按如下方式执行命令:

at 10.20 pm  
warning: commands will be executed using /bin/sh  
at> sh backup.sh  
at> ^d  

按 Ctrl+D 或 ^d 键完成任务。上述命令将安排 backup.sh 晚上 10:20。请考虑以下输出

我们还可以将以下命令用于相同的过程:

echo "sh backup.sh" | at 10.20 pm  

上述命令将在晚上 10:20 执行 backup.sh。请考虑以下输出:

列出计划任务

我们可以使用 atq 命令列出所有计划任务。如果我们从根用户执行它,它将列出所有用户的作业。但是,如果我们不是root用户,它只会列出特定用户的作业。按如下方式执行命令:

atq  

输出结果:

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

删除计划任务

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

atrm 2

上述命令将删除任务 ID 为 2 的任务。请考虑以下命令:

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

检查计划任务的内容

我们可以通过执行 atq 命令来列出任务。但是,如果我们想知道计划了什么脚本或命令,我们需要执行带有“-c”选项后跟任务 id 的 at 命令。按如下方式执行命令:

at -c 2 

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

at 命令的示例

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

示例 1:将任务安排在上午 8:00。

要将任务安排在上午 8:00,请按如下方式执行命令:

at 8:00 AM

示例 2:将任务安排在下周二上午 8:00。

若要将任务安排在下周二上午 8:00,请按如下方式执行命令:

at 8:00 AM tuesday

输出结果:

示例 3:将任务安排在即将到来的 8 月 00 日上午 15:<>。

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

at 8:00 AM apr 15  

输出结果:

示例 4:将任务安排在明天上午 8:00。

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

at 8:00 AM tomorrow 

输出结果:

获取帮助

如果您在使用“at”命令时卡在任何地方,您可以通过阅读手册从终端获取帮助。要显示 at 命令的手册,请按如下方式执行 man 命令:

man at

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

要了解更多信息,请滚动输出并退出手册,请按“q”键。

热门文章

优秀文章