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