如何将参数从Shell传递到WLST脚本

问题描述

编辑:问题已解决。但我将其保留在这里,以便其他人将从这里受益。如果还不行,我将删除问题。

我想按顺序自动停止服务器。因此,就此而言,我用python编写了一个脚本,另一个用bash编写了脚本。 WLST脚本

import sys
managedserver = sys.argv[1]
#while True:
#   try:
#   connect('weblogic','weblogic1','t3://machine-1:7001')
#   break
#   
#   except Exception:
#   print("can't connect to AdminServer")
connect('weblogic','welcome1','t3://machine-1:7001')

shutdown(managedserver,ignoreSessions='false',force='false')
#if state(managedserver,name='managedserver') == 'SUSPENDED':
#   time.sleep(60)
#   shutdown(managedserver,name='managedserver',ignoreSessions='true',force='true')
#elif state(managedserver,name='managedserver') == 'RUNNING':
#   shutdown('managedserver',force='true')
#else:
#   break

exit()

我用以下脚本调用该脚本。

echo "############################"
echo "# All Servers are STOPPING #"
echo "############################"
# Shutting down servers
WLST_Bin=/data/mw/12213/wls/ohome/oracle_common/common/bin
for managedserver in MOBIL-TEST-S01-2201 MOBIL-TEST-S01-2202
do 
    echo " Shutting Down ${server} !!! "
    sh ${WLST_Bin}/wlst.sh ServerStop.py $managedserver
    sleep 600
    
done

我得到的错误WLSTException: Error occurred while performing shutdown : No server,cluster,system component or system component configuration with name "managedserver" configured in the domain

这是由于我无法将参数传递给WLST脚本。我在网上搜索,但找不到任何内容

解决方法

您可以将参数传递给WLST脚本。您应该使用sys.argv[i].

阅读

示例:

if len(sys.argv) == 3:
    decrypt(sys.argv[1],sys.argv[2])

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...