【发布时间】:2009-09-26 17:06:40
【问题描述】:
我们使用 AutoSys 进行作业调度,我发现自己编写了很多 JIL(作业指导语言)脚本来删除框并由于小的作业更改(例如开始时间等)而重新插入它们。有没有可以使用的更新命令? CA 的 AutoSys cheat sheet 没有任何信息。
【问题讨论】:
我们使用 AutoSys 进行作业调度,我发现自己编写了很多 JIL(作业指导语言)脚本来删除框并由于小的作业更改(例如开始时间等)而重新插入它们。有没有可以使用的更新命令? CA 的 AutoSys cheat sheet 没有任何信息。
【问题讨论】:
是的,
它是 update_job: 属性。
将框 BOX_A 开始时间从 14:00 更改为 15:00 的示例
update_job: BOX_A
start_times: "15:00"
将其保存到文件中并使用 jil 运行它
【讨论】:
直接从jil CLI输入命令时可能需要考虑的一件事,必须在完成命令后编写退出。否则可能不会生效。几天前发生在我身上。
所以,如果你在 JIL 中输入了命令并且没有生效,请尝试在提示符末尾写 exit。类似:
jil>> update_job: xyz <Enter>
jil>>1>start_times: 11:00 <Enter>
jil>>2>exit <Enter>
【讨论】:
您可以使用 UPDATE_JOB。请注意,如果您使用它并且您的更新是删除 start_times(而不仅仅是更新它),那么您将对 update_job jil 执行的操作是仍然包含 start_times 条目但不指定任何值。请参阅下面的示例:
update_job: BOX_A
start_times:
上述将删除作业的 start_times。如果只是删除更新jil中的start_times,start_times将不会更新,它仍然会保留在jil中。
【讨论】:
update_job: YOUR_JOB_NAME
start_times: 04:00
【讨论】:
如果您有兴趣,可以创建一个 autosys 作业来更新另一个作业。下面的输出可以放在 jil 文件中以创建一个 autosys 作业,该作业在启动时将从每周运行 7 天的作业中删除 sa。我有许多数据库作业,有时不需要在构建周末(即星期六)运行。
-------------This goes in the jil file-------------------
/* ----------------- update_job_date ----------------- */
insert_job: update_job_date job_type: c
box_name: update_job_attributes
command: echo "update_job\: runs_every_day job_type\: c days_of_week\: mo,tu,we,th,fr,su" | jil
machine: localhost
owner: root@localhost
permission: gx,wx
condition: d(job1)
description: "change date for update_job_date"
std_out_file: "$TEMP_PATH/$AUTO_JOB_NAME.log"
std_err_file: "$TEMP_PATH/$AUTO_JOB_NAME.log"
alarm_if_fail: 1
profile: /home/variables_autosys
-------------This goes in the jil file-------------------
【讨论】:
我了解更新的作用,并且您可以更新许多其他属性。上述示例不需要您创建 jil 文件来执行更新。
我上面的示例是针对用户需要为临时维护执行此操作的场景。因此,在这种情况下,他们创建了一个包含作业的维护箱,其中可能需要打开和关闭作业的某些 autosys 属性。我发现很容易看到一个盒子里的所有东西,然后你可以创建另一个工作来把东西放回去。
没有多少人知道您可以从图形界面运行更新 jil 命令。 你所要做的就是在命令行中指定这个
command: echo "update_job\: runs_every_day job_type\: c start_times\: " | jil
【讨论】:
AutoSys 允许您添加、修改和删除具有以下属性的作业名称。
insert_job: JOB_NAME --> 需要根据所选择的作业类型提供其他子属性。
update_job: JOB_NAME --> 只需要需要修改的子属性即可。如果要删除一个,则应将值替换为单个空白,并且需要将修改替换为新值。一些子属性依赖于其他子属性,例如start_times,只有在date_conditions 设置为TRUE 或FALSE 时才会生效。
delete_job: JOB_NAME --> 不需要其他子属性
【讨论】: