1

我需要检查 GoldenGate 进程的滞后。为此,我执行 Goldengate,而不是尝试运行 GoldenGate 自己的命令“info all”。

import subprocess as sub
import re
import os

location = str(sub.check_output(['ps -ef | grep mgr'], shell = True)).split()
pattern = re.compile(r'mgr\.prm$')
print(type(location))
for index in location:
        if pattern.search(index)!=None:
                gg_location = index[:-14] + "ggsci"

exec_ggate = sub.call(str(gg_location))
os.system('info all')

然而,当我执行 GoldenGate 时,它​​会打开一个新的 GoldenGate 自己的外壳。所以,我认为正因为如此,Python 无法运行“info all”命令。我怎么解决这个问题?如果缺少信息,请通知我。

先感谢您,

4

1 回答 1

1

对于 Golden Gate 上的命令自动化,您在 Oracle 文档中有以下信息:https ://docs.oracle.com/goldengate/1212/gg-winux/GWUAD/wu_gettingstarted.htm#GWUAD1096

输入脚本 从操作系统的命令行使用以下语法。

ggsci < input_file

其中:尖括号 (<) 字符通过管道将文件导入 GGSCI 程序。input_file 是一个文本文件,称为 OBEY 文件,包含您要发出的命令,按照要发出的顺序。

使用您的脚本(请记住,我不知道将代码写入 python),您可以通过以下方式在 python 中简单地执行 shell 命令:

import os
os.system("command")

所以尝试这样做:

import os
os.system("ggsci < input_file")

按照文档的指示更改 input_file。我认为你这样做会更容易。

于 2018-11-29T18:22:04.673 回答