📅  最后修改于: 2020-12-08 02:45:49             🧑  作者: Mango
Linux at命令用于计划任务以在指定时间执行一次,而无需编辑配置文件。它是cron作业计划程序的替代方法。如果我们要在一段时间后执行某个过程,例如关闭系统,进行备份,发送电子邮件作为提醒等,这将很有用。
at命令能够在指定的时间和日期或给定的时间间隔执行命令或脚本。我们可以使用分钟,小时,天或周来指定时间。它还允许一些关键字,例如午夜或下午茶时间(用于“至下午4点”)。
注意:它不能用于重复任务,因为重复任务更喜欢Linux crontab。
atq和atrm命令也是at命令的一部分。让我们简要地了解这两个命令。
atq命令: atq命令用于显示用户的待处理任务。如果该用户是root用户,它将列出所有任务。否则,它将列出特定用户的工作。显示输出的格式为任务ID,日期,小时,队列和用户名。
atrm命令:用于删除任务,由任务编号标识。
“ at”命令支持各种选项,以使其更加具体。使用at命令可以方便使用的选项如下:
要使用at命令,我们必须将其安装在系统上。让我们了解如何安装它。
要安装at命令,请执行以下命令:
sudo apt-get install at
上面的命令将要求输入系统密码,键入密码,然后按Enter键。它将启动一个守护进程,并将at命令安装到您的计算机上。考虑以下输出:
安装at命令后,我们必须启动并启用atd服务。要在引导时启动并启用atd服务,请执行以下命令:
systemctl start atd
systemctl enable atd
上面的命令将启动并启用atd服务。考虑以下输出:
在我们的计算机上启用atd服务后,我们可以安排任何任务或命令。现在,我们准备安排我们的第一个任务。让我们继续前进。
要计划任务,请执行at命令,后跟时间或关键字。
例如,要计划在10.20 pm备份任务,请执行以下命令:
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用户执行它,它将列出所有用户的作业。但是,如果我们不是root用户,它将仅列出特定用户的作业。执行以下命令:
atq
考虑以下输出:
从上面的输出中,我们可以看到我们仅计划了一项任务。它分别显示任务ID,日期和时间以及用户名。
我们可以使用atrm命令通过任务ID删除计划任务。要删除计划的作业,请执行atrm命令,后跟作业ID,如下所示:
atrm 2
上面的命令将删除任务ID为2的任务。请考虑以下命令:
从上面的输出中,我们可以看到作业是否成功删除,它将不会显示任何输出。要验证作业是否成功删除,请执行atq命令。
我们可以通过执行atq命令列出任务。但是,如果我们想知道计划了什么脚本或命令,则需要使用带有-c选项和任务ID的at命令执行。执行以下命令:
at -c 2
上面的命令将显示任务ID为2的任务的内容。
at命令的一些有用示例如下:
示例1:将任务安排在8:00 AM。
要在8:00 AM安排任务,请执行以下命令:
at 8:00 AM
输出:
示例2:将任务安排在下一个星期二的8:00 AM。
要在下周二的8:00 AM安排任务,请执行以下命令:
at 8:00 AM tuesday
输出:
示例3:将任务安排在4月15日上午8:00。
要在4月15日上午8:00安排任务,请执行以下命令:
at 8:00 AM apr 15
输出:
示例4:将任务安排在明天的8:00 AM。
要计划明天的8:00 AM执行任务,请执行以下命令。
at 8:00 AM tomorrow
输出:
例5:安排任务在2小时后执行。
要安排任务在2小时后执行,请执行以下命令:
at now + 2 hour
输出:
如果在使用“ at”命令时遇到任何困难,可以通过阅读手册从终端上寻求帮助。要显示at命令的手册,请执行以下man命令:
man at
上面的命令将显示手册,其中包含有关at命令以及支持的选项的信息。考虑以下输出:
要了解更多信息,请滚动输出并退出手册,请按“ q”键。