在IT环境中调度命令非常重要。有一些工具像 at
, atq
, atrm
, batch
. 我们将在本教程中查看它们。
安排作业时间
在安排作业时,我们将使用 at
命令。在指挥部有非常因果的时间规定。我们将在下一个示例中详细介绍可变时间规范。现在我们只需安排工作。
$ at 20:58

我们要跑了 mkdir test
命令 在 20:58
. 为了实现这一点,我们运行以下步骤。
-
at 20:58
将在运行以下命令20:58
-
mkdir test
是我们要在指定时间运行的命令 - 我们可以为每一行提示提供多个命令,但是可以用
CTRL+d
输出如下
时间格式
at
命令支持许多不同类型的时间规范。这里有一些。
-
noon
将运行12:00 PM -
midnight
上午12点开始 -
teatime
将运行下午4:00 -
tomorrow
将运行 第二天同一时间 -
next week
将于下周运行 -
fri
星期五开始 -
next monday
下周一开始 -
now + 1 hour
将在1小时后运行 -
now + 3 weeks
将在3周后运行
用相对时间安排作业
正如我们在前面的例子中看到了很多不同的时间表达式,我们可以在我们的例子中使用它们。在本例中,我们将相对地设置时间,这意味着我们将根据当前时间设置时间。指定我们将使用的相对时间 now
时间说明符 count
. 在本例中,我们将命令设置为在15分钟后运行。
$ at now + 15 minutes

我们可以从截图中看到,命令设置为在 21:31
15分钟后。我们可以看出这项工作是有限的 2
查看所有计划作业
在繁忙的系统中,可能会有许多计划的作业。列出它们可以通过 atq
命令。
$ atq

我们可以看到名单上只有一份工作。这份工作编号为 2
. 此作业将在 Thu Mar 9 21:31:00
. 作业由用户创建 ismail
删除计划的作业
我们还可以删除未运行的作业。我们需要的工作ID,可以列出与 atq公司 . 我们将提供工作ID给 atrm
命令如下。我们将删除作业ID 2
.
$ atrm 2

根据平均负载执行作业
我们可以为工作安排不同的时间。但有时仅仅设定时间是不够的或不适合我们的情况。我们可以使用另一种方法来调度命令 batch
如果平均负载小于 1.5
. 在本例中,我们将运行 echo "Run reports"
$ batch

从文件重新加载作业
另一个有用的特性是从文件中读取命令。正如我们所知,命令是从交互式shell读取的。我们可以提供在预定时间运行的命令。我们将使用 -f
选项和命令文件名来使用此功能。在本例中,我们将读取名为 myjobs.txt
两天后运行。
$ at -f myjobs.txt now + 2 days

允许和拒绝用户计划作业
默认情况下,Linux系统中的所有用户都可以创建计划作业。这可能会造成一些问题或安全问题,或者只是不必要的情况。我们可以设置规则来允许或拒绝某些用户调度命令。
相关文章: Windows MSDOS批处理文件命令
有两个配置文件可以配置此。
-
at.allow
用于设置允许的用户 -
at.deny
用于设置被拒绝的用户