如何限制某人将 Autosys 作业置于冰上

How to Restrict someone from putting an Autosys Job On Ice

我面临一个场景,我有一个 autosys 作业 A。作业 B、C、D 依赖于 A。 当我们将工作 A 保存在冰上时,B、C、D 失败。

我们发生了多起 A 被错误地放在冰上的事件。

有什么方法可以限制作业A被放到冰上吗?

我迫切需要避免此类事件在未来发生。

你到底想做什么?这样做的目的是 (1) 能够偶尔停止 JobA 运行,而且 (2) 避免忘记重新启用 JobA 的情况?并且您是否还需要在没有 jobA 运行 的情况下立即阻止 jobs B/C/D 运行。

如果是这样,那么我建议:

  1. 你不会把 jobA 搁置一旁。当您想要 "pause" 作业时,在您设置为 Y 的 autosys 变量的值上添加条件 例如
    条件:v(var_disable_jobA) !="Y"

    我更喜欢否定 (!=) 检查,因为只有将值设置为 Y 才会导致作业停止 运行。假设这就是您想要的,使用变量还可以使任何相关作业也暂停。

  2. 你创建了一个虚拟的 "reminder" 作业,它在运行时总是失败(我假设你有某种监控来发现这个并整合多个提醒)并使它也依赖于变量- 这样它只会在 JobA 被禁用时定期 runs/fails,即指定
    insert_job: JobA_disabled
    命令:假
    条件:v(var_disable_jobA) = "Y"
    date_conditions: 1
    start_mins: 59,29
    days_of_week: 全部
    alarm_if_fail: 1
    (如果我在 JIL 中输入了任何拼写错误,我深表歉意)

这样,当 JobA 被禁用时,您将每 30 分钟收到一次提醒(但可以选择您自己的提醒时间)。为了清楚起见,我还将提醒工作称为 "JobA_disabled"。当变量要设置 Y 以外的其他内容时,JobA 将恢复 运行 并且失败的提醒作业将停止提醒您。

前面的建议很好。我还有一个要添加 - 添加另一个工作如何,称之为工作 Z。使 B、C 和 D 取决于 A 的成功和 Z 的成功(您可以通过使用回顾来进一步限制这些)。使 Z 成为一个简短的脚本,它运行并且只进入 A 的成功状态而不是在冰上。

这应该可行,但上面的全局变量技巧也不错。如果您使用的是 AutoSys R11.3.n,您可能可以使用在流开始时设置的资源,并且仅在作业不在冰上或类似情况时才释放。

使用作业的权限属性来限制谁可以编辑和执行作业。默认权限是只有所有者可以编辑和执行作业。在这种情况下,我认为用户已使用作业的 'owner' 凭据登录到 Autosys 会话,因此该人将能够更改作业的状态。解决方案是消除上面朋友建议的将工作搁置的需要。

或如果用户标识不同,请检查作业定义中的权限属性,并删除该条目。 有效值为: gx (仅限 UNIX)为作业分配组执行权限。 格 (仅限 UNIX)为作业分配组编辑权限。 我 表示任何授权用户都可以编辑作业,无论他们使用的是什么机器。否则,用户必须登录到所有者字段中指定的机器(例如,user@host_or_domain)。 MX 表示任何授权用户都可以执行作业,无论他们在哪台机器上。否则,用户必须登录到所有者字段中指定的机器(例如,user@host_or_domain)。 我们 为工作分配世界编辑权限。 wx 为作业分配世界执行权限。 作业的所有者始终具有完整的编辑和执行权限。 示例:设置权限以在 UNIX 上执行和编辑作业 此示例在 UNIX 上设置权限,以便任何用户都可以执行该作业,但只有您所在组的成员才能编辑它: 权限:ge, wx