
#! /bin/bash
export LANG=en_US.UTF-8
pids=`ps aux|grep mongod|grep -v java |grep -v solr|grep -v grep|grep -v ps | awk '{print 2}'`
discover_mongo_json=""
cpname="mongo_cluster"
function getpasswd()
{
if [ ! -f "/data/monitor/mongopwd" ];then
conn_str=`echo ""`
echoconn_str
else
if [ -s /data/monitor/mongopwd ];then
conn_str=`echo ""`
while read line
do
port_cmd=`echo line | cut -d "|" -f 2` #user_cmd=`echoline | cut -d : -f 2`
#passwd_cmd=`echo line | cut -d : -f 3`
#database_cmd=`echoline | cut -d : -f 4`
if [[ port_cmd ==1 ]];then
#conn_str=user_cmd:passwd_cmd:database_cmd
conn_str=line
fi
done </data/monitor/mongopwd
else
conn_str=`echo ""`
fi
echo conn_str
fi
}
for pid inpids
do
ports=`netstat -lntp|grep pid|awk '{print4}'|awk -F ':' '{print NF}'`
#psinfo=`lsof -ppid|grep txt|head -n 1 |grep -v ps|grep -v grep`
#config_path=`echo psinfo|awk -F ' ' '{print9}'`
p_number=`echo ports|awk '{print NF}'`
if [ "p_number" -gt 1 ];then
ports=ports|awk '{if(1>2){print2}else{print 1}}'
else
ports=ports
fi
if [ "ports" != "" ];then
for p inports
do
#echo p
#echop
conn_str=`echo (getpasswdp)`
#echo conn_str
if [[conn_str != "" ]];then
username=`echo conn_str | cut -d "|" -f 3`
passwd=`echoconn_str | cut -d "|" -f 4`
dbname=`echo conn_str | cut -d "|" -f 5`
else username=""
passwd=""
dbname=""
fi
#cluster_str="echo \"rs.status()\"| mongo -host localhost --host{liu} | grep -i set | cut -d : -f 2 | cut -d \",\" -f 1"
#cluserName=`echo "rs.status()"| mongo --host localhost --port p -u'Monitor' -p'm0N!7o@' --authenticationDatabase admin --authenticationDatabase admin | grep -i set | cut -d : -f 2 | cut -d "," -f 1`
if [[conn_str != "" ]];then
cluserName=`echo "rs.status()"| mongo --host localhost --port p -uusername -ppasswd --authenticationDatabasedbname | grep -i set | cut -d : -f 2 | cut -d "," -f 1`
else
cluserName=`echo "rs.status()"| mongo --host localhost --port p | grep -i set | cut -d : -f 2 | cut -d "," -f 1`
fi
#echocluserName
node_list_x=""
if [[ conn_str != "" ]];then
echo "rs.status()"| mongo --host localhost --portp -uusername -ppasswd --authenticationDatabase dbname | grep -i name >/tmp/tmp.txt
else
echo "rs.status()"| mongo --host localhost --portp | grep -i name >/tmp/tmp.txt
fi
while read line
do
node_ip=`echo line | cut -d : -f 2 | sed 's/\"//g' | sed 's/,//g' | sed 's/^[ \t]//g'`
#node_ip=`echoline | cut -d : -fA 2 | sed 's/[,\"]//g'`
#echo node_ip
node_port=`echoline | cut -d : -f 3 | sed 's/\"//g' | sed 's/,//g'`
node_name={node_ip}_{node_port}
#echo node_name
node_list="{'nodeName':'node_name','nodeIp':'node_ip','port':'node_port'},"
node_list_x="node_list_xnode_list"
done</tmp/tmp.txt
node_list_res="[{node_list_x%,*}]" discover_mongo_info="{'cluserName':cluserName,'nodeList':node_list_res},"
done
else
discover_mongo_info=" "
fi
discover_mongo_json="discover_mongo_jsondiscover_mongo_info"
done
result="[{discover_mongo_json%,*}]"
result=`echo {result//\'/\"}`
resutl_final="[{\"cpname\":\"cpname\",\"flags\":result}]"
echoresutl_final