ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

调度延迟的用户作业

调度延迟的用户作业 描述延迟的用户任务有时候您可能需要在未来的特定时间运行一个或多个命令。例如用户计划在半夜执行长时间运行的维护任务。又如系统管理员在处理防火墙配置并将安全作业排入队列以便在 10 分钟后将防火墙设置重置为以前的工作状态。然后系统管理员会在作业运行之前将其停用除非新的防火墙配置起作用。这些调度的命令通常被称为任务或作业而延迟一词则表示这些任务或作业将在未来运行。红帽企业 Linux 用户用来调度延迟任务的一种可用解决方案是 at 命令该命令已默认安装并启用。at 软件包中提供了 atd 系统守护进程以及与该守护进程交互的 at 和 atq。任何用户都可使用 at 命令为 atd 守护进程的作业排队。atd 守护进程提供了用 a 到 z 标记的 26 个队列作业按字母顺序排列队列越后系统优先级越低使用后面章节中将讨论的更高 nice 值。调度延迟的用户任务使用 at TIMESPEC 命令开始输入要调度的新作业。at 命令随后从 STDIN您的键盘读取以获取有待运行的命令。手动输入命令时请在空行上按 CtrlD 来完成输入。您可以使用脚本文件中的输入重定向来输入更为复杂的命令。例如使用 at now 5min myscript 命令将 myscript 中的命令调度到 5 分钟后启动而无需在终端窗口中手动键入命令。at 命令 TIMESPEC 参数接受用于描述作业运行时间的自然时间规格。例如用 02:00pm、15:59、midnight 甚至 teatime 开头后面接一个可选日期或将来的天数以此指定时间。TIMESPEC 参数需要按照该顺序指定时间和日期。如果您提供日期而非时间则时间默认为当前时间。如果您提供时间而非日期则日期被视为已匹配并且作业将在下一次时间匹配时运行。以下示例显示了不提供日期的作业调度。at 命令将作业调度到今天或明天执行具体取决于时间是否已过。[userhost ~]$ date Wed May 18 21:01:18 CDT 2022 [userhost ~]$ at 21:03 myscript job 3 at Wed May 18 21:03:00 2022 [userhost ~]$ at 21:00 myscript job 4 at Thu May 19 21:00:00 2022检查和管理延迟的用户作业要获得当前用户的待处理作业概述请使用命令atq或at -l命令。[userhost ~]$ atq 28 Mon May 16 05:13:00 2022 a user 29 Tue May 17 16:00:00 2022 h user 30 Wed May 18 12:00:00 2022 a user在前面的输出中每一行都代表一个调度到将来运行的不同作业。以下描述适用于输出的第一行28 是唯一的作业编号。Mon May 16 05:13:00 2022 是已调度作业的执行日期和时间。a 表示调度的作业已排入默认队列 a。user 是作业的所有者以及运行该作业的用户身份。使用at -c JOBNUMBER命令检查在 atd 守护进程执行作业时运行的命令。此命令显示作业的环境在用户创建作业时从用户环境设置以及要运行的命令语法。从计划中删除作业atrm JOBNUMBER命令将会删除调度的作业。当不再需要调度的作业时例如远程防火墙配置成功且不需要重置时可将该作业删除。
返回列表