#!/bin/sh
# 获取mongodb 状态信息
# Cur_Dir: 当前脚本所在目录
# param: 参数
# mem/ version / network /opcounters /connections
declare -A map; #声明一个Map的数据类型
map[G]=1000000000
map[M]=1000000
map[K]=1000
count=$#;
if [[ $count -lt 3 ]] ; then
exit;
fi;
if [[ $count == 3 ]] ; then
val=`echo "db.serverStatus().$3" |$Agent_Home/scripts/mongo -host $1:$2 | awk 'NR==3{print}'`;
echo $val;
else
case $3 in
connections)
if [[ totalCreated == $4 ]] ; then
val=`echo "db.serverStatus().$3.$4" |$Agent_Home/scripts/mongo -host $1:$2 | awk 'NR==3{print}' | awk -F"(" '{print $2}'| awk -F")" '{print $1}'`;
echo $val;
else
val=`echo "db.serverStatus().$3.$4" |$Agent_Home/scripts/mongo -host $1:$2 | awk 'NR==3{print}'`;
echo $val;
fi;
;;
pid)
processid=`echo "db.serverStatus().$3" |$Agent_Home/scripts/mongo -host $1:$2 |awk 'NR==3{print}'|awk -F"(" '{print $2}'|awk -F")" '{print $1}'`;
val=`ps -e -o pid,uname,pcpu,pmem,comm | grep mongod|grep $processid|awk -F" " '{print $'$4'}'`;
echo $val;
;;
collections)
val=`echo "db.stats().$3" |$Agent_Home/scripts/mongo -host $1:$2 $4|awk 'NR==3{print}'`;
if [[ $val > 2 ]] ; then
echo `expr $val - 2`;
else
echo 0;
fi;
;;
*)
val=`echo "db.serverStatus().$3.$4" |$Agent_Home/scripts/mongo -host $1:$2 | awk 'NR==3{print}'`;
echo $val;
;;
esac;
fi
转载于:https://my.oschina.net/gmd/blog/665638