如何在 Linux 下使用“at”命令安排作业

如果我们想安排一个作业在未来只运行一次(而不是使用 cron 定期安排它),我们可以使用 at 命令。
要使用 at,首先要验证 at 包已经安装,并且 atd 服务已经启动。

我们可以通过在命令提示符处输入 at launch_time 来定义 at 作业,其中 launch_time 是我们希望作业开始的时间。
(例如 12:34)。
然后,在 at> 提示符下输入要一次运行一行的命令。
完成输入命令后,按 Ctrl+d 保存作业。

以下是使用 at 命令创建作业的示例:

# at 10:40
at> echo "Hello World" > /tmp/out
at> [EOT]
job 3 at Sun Dec 17 10:40:00 2017

要查看 at 作业队列,请使用 atq 命令。
例如:

# atq
2       Sun Dec 17 10:37:00 2017 a root
3       Sun Dec 17 10:40:00 2017 a root

第一列中的数字是 at 作业的作业 ID。
要在执行作业之前从 at 队列中删除作业,请使用 atrm 命令。

# atrm [job_ID]

例如 :

# atrm 2

我们还可以在文本文件中输入要执行的命令。
如果这样做,则需要在 shell 提示符下输入 'at -f file launch_time ',其中文件是文件的路径和文件名。

下表列出了一些其他常用的命令和选项:

命令描述
atq显示定义的作业(包括删除作业所需的作业编号)
atrm job_number删除作业(使用作业号)

与 cron 一样,我们可以限制对 atd 守护程序的访问。
两个文件确定哪些用户可以运行 at 命令:

  • /etc/at.allow :在此文件中输入的用户可以定义作业。
  • /etc/at.deny :未在此文件中列出的用户可以定义作业。

这些文件是我们可以修改或者创建的文本文件。
如果 /etc/at.allow 文件存在,则仅评估此文件。
如果这两个文件都不存在,则只有 root 用户可以定义 at 作业。

日期:2020-09-17 00:13:50 来源:oir作者:oir