我是 Control M 的新手。我需要创建一份工作。我的工作应该调用一个 shell 脚本,我需要在其中检查是否已收到文件。如果没有,我需要向列表发送电子邮件,如果是,我需要在一段时间后重试该工作。如果收到文件,那么我只需要执行一个脚本,不需要重新运行。请帮我怎么做。
我已经创建了检查文件是否已在所需目录中接收的脚本。如何将信息传递给控制 M 作业以从控制 M 步骤选项卡发送电子邮件。另外,如果收到文件,我如何控制重新运行。请帮忙。
我是 Control M 的新手。我需要创建一份工作。我的工作应该调用一个 shell 脚本,我需要在其中检查是否已收到文件。如果没有,我需要向列表发送电子邮件,如果是,我需要在一段时间后重试该工作。如果收到文件,那么我只需要执行一个脚本,不需要重新运行。请帮我怎么做。
我已经创建了检查文件是否已在所需目录中接收的脚本。如何将信息传递给控制 M 作业以从控制 M 步骤选项卡发送电子邮件。另外,如果收到文件,我如何控制重新运行。请帮忙。
请按照以下步骤操作:
在您的操作系统作业中,在调度下选择循环作业并相应地添加重新运行的时间间隔。例如:每 15 分钟。配置结束时间/重播次数取决于您的要求。
在 shell 脚本中,获取输出,以便您可以识别是否接收到文件。例如:如果您收到了文件,则为 output1,如果未收到文件,则为 output0。
在 Actions > On Do Actions 下 - 创建一个新的 On Specific Statement Output
A) 声明值:*
B) 代码值:output0 -- 这表示您正在搜索包含 output0 的输出
C) 添加执行 > 通知:在目的地下选择邮件并提供详细信息以接收信息。
a) 添加另一个 On Do Actions - 创建一个新的 On Specific Statement 输出
b) 声明值:*
c) 代码值:output1 -- 这表示您正在搜索包含 output1 的输出
d) Add Do > Select Stop Cyclic Run -- 这表明当我们收到文件时,我们正在停止循环运行。
e)Add Do > Order Job 提供 Control-M 服务器名称:选择您是否在同一服务器中运行。文件夹:提供文件夹名称作业名称:提供您在收到文件后要触发的作业名称。
在这里,Control-M 作业继续运行,直到输出值为:output1。一旦收到它就会停止循环作业。
听起来你需要把你的工作分成两个独立的工作。
第一个工作应该是文件观察者。将此作业设置为循环运行,在未找到文件时发送电子邮件(oscompstat 7)并设置为停止循环并在找到文件时发布输出条件(oscompstat 0)。
第二个作业将在收到第一个作业的输出条件后执行脚本。
在旁注中,我建议您考虑使用 control-m 的内置 filewatcher 实用程序ctmfw
,而不是编写自己的脚本。