首页 > 编程知识 正文

at命令怎么使用,linux安装at命令

时间:2023-05-06 02:41:13 阅读:39282 作者:2350

at是命令行实用程序,允许您计划在特定时间运行的命令。 只有一次使用创建的作业at。 本文介绍如何使用at及其相关实用程序batch、atq和atrm查看、删除和创建稍后运行的作业。

at是命令行实用程序,允许您计划在特定时间运行的命令。 只有一次使用创建的作业at。

本文介绍如何使用at及其相关实用程序batch、atq和atrm查看、删除和创建稍后运行的作业。

正在安装at

根据版本的不同,它可能存在于atLinux系统上,也可能不存在。

如果没有安装at,可以使用发行版的软件包管理器轻松安装。

at将安装在Ubuntu和Debian上

sudo apt更新

sudo apt安装at

at安装在CentOS和Fedora上

sudo yum install at

安装程序后,请确保atd、计划守护程序已运行并设置为在启动时启动。

sudo系统启用--now ATD

使用at命令

此at命令的简化语法如下:

at [OPTION.] runtime

运行作业时,该at命令使用“日期和时间”(runtime )作为命令行参数,从标准输入运行命令。

创建上午9:00点运行的作业吧。

at 09:00

点击Enter后,将显示at开始最多的命令提示符at。 此外,执行命令的shell会显示警告。

warning : commandswillbeexecutedusing/bin/sh

at

输入要执行的一个或多个命令。

tar-xf/home/Linux ize/file.tar.gz

输入命令后,按Ctrl-D退出提示并保存您所做的工作。

at

job4attuemay 5093360003360002020

命令显示作业编号和运行日期和时间。

除了在at提示符下输入命令外,还可以传递要执行的命令。 一种方法是使用echo命令,然后通过管道将其传递给at。

echo ' command _ to _ be _ run '|at 09:00

另一个选择是使用Here文档。

at 09:00

command_to_be_run

结束

要从文件而不是标准输入读取命令,请使用-f选项调用命令并指定文件路径。 例如,要创建运行脚本的作业/home/linuxize/script.sh,请执行以下操作:

at 09:00-f/home/Linux ize/script.sh

默认情况下,如果命令生成输出,at会在作业完成时向用户发送包含输出的电子邮件。 禁止查看电子邮件通知at调用m选项:

at 09:00 -M

即使没有-m输出,也可以使用发送电子邮件。

at 09:00 -m

批处理命令

batch或其别名可以在at -b上调度作业,并在系统负载级别允许时在批处理队列中运行。 默认情况下,作业在系统平均负载小于1.5时运行。 可以在调用atd守护进程时指定负载值。 如果系统的平均负载高于指定的平均负载,作业将在队列中等待。

要使用创建作业batch,请传递要执行的命令。

echo 'command_to_be_run' | batch

指定执行时间

该at实用程序接受各种时间规格。 可以指定时间、日期和相对于当前时间的增量。

时间-请使用HH:MM或HHMM格式指定时间。 要指定12小时制,请在am或pm之后指定时间。 也可以使用弦now、midnight、noon、teatime(16336000 )等。 如果指定的时间过去,作业将在第二天运行。

日期-此命令允许您调度指定日期的作业的运行。 可以使用月份的名称、日期和可选年份指定日期。 可以使用today、tomorrow、工作日等字符串。 日期也可以以MMDD[CC]YY、MM/DD/[CC]YY、DD.MM.[CC]YY或[CC]YY-MM-DD格式使用。

增量-at还提供增量now count time-unit格式。 其中count是数字,time-unit是minutes、hours、days或weeks字符串。

可以组合时间、日期和增量。 以下是一些例子。

将工作安排在比当前时间晚10分钟的下一个星期天。

at sunday 10 minutes

现在开始安排在2日下午1点执行工作。

at 1pm 2 days

计划的工作将于2020年10月21日在12:30执行。

at 12:30 10212

0

安排一个作业从现在开始运行一小时:

at now +1 hours

您也可以在中[[CC]YY]MMDDhhmm[.ss]使用-t选项指定时间和日期。这是一个例子:

at -t 202005111321.32

指定队列

默认情况下,创造的就业机会at被安排在指定的队列中a,并创造就业机会batch被安排在b队列中。

查询可以有一个名字a来z和A到Z。字母较低的队列的优先级较低,这意味着它们优先于字母较高的队列。

您可以使用-q选项指定队列。例如,要在L队列中设置作业,应运行:

at monday +2 hours -q L

列出待处理的作业

要列出用户的待处理作业,请运行atqorat -l命令:

atq

输出将列出所有作业,每行一个。每行包括作业编号,日期,时间,队列字母和用户名。

输出:

9 Tue May 5 12:22:00 2020 a linuxize

12Wed Oct 21 12:30:00 2020 a linuxize

15Tue May 5 09:00:00 2020 a linuxize

6 Tue May 5 09:00:00 2020 a linuxize

13Mon May 4 23:08:00 2020 a linuxize

11Wed Jul 1 10:00:00 2020 a linuxize

4 Tue May 5 09:00:00 2020 a linuxize

当atq以管理用户身份调用时,它将列出所有用户的待处理作业。

删除待处理的作业

要删除待处理的作业,请调用atrm或at -r命令,后跟作业号。例如,要删除编号为9的作业,可以运行:

atrm 9

限制用户

在/etc/at.deny和/etc/at.allow文件允许你控制哪些用户可以创造就业机会at或batch命令。这些文件由用户名列表组成,每行一个用户名。

默认情况下,只有/etc/at.deny 文件存在且为空,这意味着所有用户都可以使用该at命令。如果要拒绝对特定用户的权限,请将用户名添加到此文件中。

如果该/etc/at.allow文件存在,则仅此文件中列出的用户可以使用该at命令。

如果两个文件都不存在,则只有具有管理特权的用户才能使用该at命令。

结论

该at实用程序从标准输入读取命令,并在以后执行它们。与crontab不同,使用创建的作业at仅执行一次。

有关终端中at命令类型的所有可用选项的更多信息man at。

如有任何疑问,请随时发表评论。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。