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