我需要检查 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 自己的 shell。所以,我认为正因为如此,Python 无法运行“info all”命令。我怎么解决这个问题?如果缺少信息,请通知我。
提前谢谢你,
最佳答案
对于 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。 我认为您这样做会更轻松。
关于由于执行新的应用程序,Python 操作系统命令无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53540244/