我写了一个Python程序,它将在主生产服务器和灾难恢复服务器上执行。在灾难恢复服务器上运行程序时,行为略有不同。 因此,程序需要确定它正在运行的服务器。
我们在这些服务器上运行了许多其他ksh程序,它们具有相同的要求:在两台服务器上运行,但DR服务器上可能略有不同。所有这些脚本都有点'在环境文件中,然后检查"如果环境变量$ DR_SITE等于1"确定它是否在DR服务器上运行。
我想使用Python程序中的现有环境文件 - 确定它是否在DR服务器上运行。我不能只读取这个环境文件,它实际上是一个ksh脚本,它在设置DR_SITE变量之前本身就有一些逻辑。
这让我想到了原来的问题:
你是如何做点什么的?' in(或者在python中执行如上所述的环境文件,以便继承由?设置的环境变量?
例如,在ksh
中我会执行此操作:
. /path/env.set
我尝试了这个,但它似乎没有用(我在调用os.system调用之前打印出了DR_SITE值,之后,它没有改变):
os.system(". /appl/gfpd2/current/D2soe_set")
答案 0 :(得分:0)
您可以编写一个ksh
脚本来源和执行环境设置器,然后调用Python程序;
#!/usr/bin/env ksh
. /path/env.set
exec python /path/your_script.py
Exec用于保存一些内存。
(我不会将变量传递给Python脚本,因为我不熟悉ksh
。)