0

目前我正在做一个项目,使用 Control-M 来运行 Control-M 作业。

并且来自其他团队的当前项目正在使用 Hudson 来触发 Spring Batch 作业。

我知道 Control-M 作业可以转换为 Spring Batch 作业,但我想知道是否可以让 Hudson 代理触发 Control-M 作业?

谢谢!

4

1 回答 1

2

简短的回答是肯定的。我经常使用 Jenkins 来使开发人员能够运行 Control M 作业。只要允许 Jenkins/Hudson 用户运行作业,就可以通过这种方式避免整个自助服务配置。

1.我需要开始工作

#Run job and capture order number 
OUTPUT="$(${controlm_path}/ctm/exe/ctmorder -TABLE "${TABLE_NAME}" -NAME "${JOB_NAME}" -ODATE "$(date +%Y%m%d)" -FORCE y -autoedit %%PARM1 ${server}  -autoedit %%PARM2 ${action} )"
echo "${OUTPUT}"
ORDERNUM="$(echo "$OUTPUT" |grep orderno= |cut -f 3 -d , | cut -f 2 -d \' )"
echo "Order Number: $ORDERNUM"

2.等待工作完成

#Get all job statusses and check if the state of our job is in "Post pro" status (that means it is done)
  STATUS_LINE=$(${controlm_path}/ctm/exe/ctmpsm -LISTALL TIME | grep "$ORDERNUM.*Post pro")

3.获取日志

${controlm_path}/ctm/exe/ctmpsm -LISTSYSOUT ${ORDERNUM} > logs/mylog.log

4.如果工作时间太长,用以下命令杀死它

${controlm_path}/ctm/exe/ctmkilljob -ORDERID $ORDERNUM

这 4 个基本命令我有一个简洁的小 shell 脚本,我在安装了 ControlM 客户端的 unix 机器上运行它。

于 2013-10-22T19:00:59.773 回答