- 论坛徽章:
- 0
|
本帖最后由 wdong_2001 于 2015-01-12 16:18 编辑
有一个脚本,通过获取临时文件里的IP/节点名信息,再调脚本(这个是包装好的,现在是一个节点一个节点)去获取节点的jmx状态。
#get app
function get_appinfo()
{
IFS=$'\n';
for info in $(cat /opt/oracle/sor/deploy/batch/Operate_temp/TMP_two_command.xn5452 |grep -v ^#);
do
ip=`echo $info | awk -F ";" '{print $2}' |awk '{print $3}'`;
instance_name=`echo $info | awk -F ";" '{print $2}' |awk '{print $4}'`;
echo "ip1=${ip} instance=${instance_name}";
#check node jmx_port status
Get_Jmx_status $ip ${instance_name}
if [ ${node_jmx_port_status} == "jmxportok" ]
then
echo "$ip ${instance_name}"
fi
done
}
#check app jmxstatus
function Get_Jmx_status()
{
app_ip=$1
instance_name=$2
if [[ -f ${jmx_status_file} ]]
then
sh /nfs/sor/script/tools/getJmxStatus/bin/getJmxStatus.sh ${app_ip} ${instance_name}
JmxResult=$?
#check result
if [ $JmxResult -eq 0 ]
then
node_jmx_port_status=jmxportok
return 0
else
node_jmx_port_status=jmxportfalse
return 1
fi
fi
}
function main()
{
get_appinfo
}
main
执行结果
ip=192.168.165.39 instance=t-10
Check 192.168.165.39 jmxstatus t-10 : [OK]
192.168.165.39 t-10
ip1=192.168.165.31 instance=t-33
Check 192.168.165.31 jmxstatus t-33 : [OK]
192.168.165.31 t-33
现在的做法是通过for 循环获取节点信息,所以只能串行获取节点状态,在不改变getJmxStatus.sh脚本的前提下,如何写才能实现同进获取for循环里两个IP节点的jmx状态呢???就像如下所示:
if [ ${node_jmx_port_status1} == "jmxportok" -a ${node_jmx_port_status2} == "jmxportok" ]
then
echo "do other script"
fi
|
|