#! /bin/sh
source? ~/.bash_profile
arr_zk=("127.0.0.3:1999" "127.0.0..4:1999" "127.0.0..5:1999")
printf "\n"
date +"###############zookeeper? ? ? é %Y-%m-%d %H:%M:%S ######################"
check_zk_status()
{
? ? #sysdate=`date "+%Y-%m-%d %H:%M:%S"`
? ? #echo ""
? ? #echo "##########? ? ZK? $sysdate? ? ##########"
? ? echo ""
? ? echo "------------------------------------------------------------------------------------------------------------------------------------"
printf "%-16.16s%-10.10s%-20.20s%-10.10s%-10.10s%-16.16s%-16.16s%-10.10s\n" "IP"? "Port" "Delay(min/avg/max)" "Accept" "Send" "Connections" "Outstanding" "Mode"·? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? " "? ? ? ? ? ? ? ? ? ? ? ? "
if [ "${#arr_zk[@]}" = "0"? ]
? then
? ? ? ? echo "zookeeper"
fi
#echo ${#arr_zk[@]}
for((i=0;i<${#arr_zk[@]};i++))
do
? ? ? ? ? ? ? ? ? ? ? ? # ip
? ? ? ? ? ? ? ? ? ? ? ? zk_ip=`echo ${arr_zk[i]}|cut -d "," -f1 |cut -d ":" -f1`
? ? ? ? ? ? ? ? ? ? ? ? zk_port=`echo ${arr_zk[i]}|cut -d "," -f1 |cut -d ":" -f2`
? ? ? ? ? ? ? ? ? ? ? ? #echo zk_ip:$zk_ip
? ? ? ? ? ? ? ? ? ? ? ? #echo zk_port:$zk_port
? ? ? ? ? ? ? ? ? ? ? ? get_zk_info $zk_ip $zk_port
done
}
get_zk_info(){
if [ ! -f $ZOOKEEPER_HOME/share/zookeeper/zookeeper-*.jar ] ; then
? ? ? ? ? ? ? ? echo $ZOOKEEPER_HOME/share/zookeeper/zookeeper-*.jar? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
else
? ? ? ? ? ? ? ? lib_zk_jar=`echo $ZOOKEEPER_HOME/share/zookeeper/zookeeper-*.jar`
fi
if [ ! -f $ZOOKEEPER_HOME/share/zookeeper/log4j*.jar ] ; then
? ? ? ? ? ? ? ? echo $ZOOKEEPER_HOME/share/zookeeper/log4j*.jar? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
else
? ? ? ? ? ? ? ? lib_log4j_jar=`echo $ZOOKEEPER_HOME/share/zookeeper/log4j*.jar`
fi
? tmp_file=./temp_zk.txt
? ? ? ? if ( [ "x$1" != "x" ] && [ "x$2" != "x" ] );then
? ? ? ? ? ? ? ? _zk_ip=$1
? ? ? ? ? ? ? ? _zk_port=$2
? ? ? ? ? ? ? ? # 0? ? ? 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? _zk_flag=0
? ? ? ? ? ? ? ? _zk_cmd="java? -cp $lib_zk_jar:$lib_log4j_jar:.:$CLASSPATH org.apache.zookeeper.client.FourLetterWordMain $_zk_ip $_zk_port srvr "
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #echo $_zk_cmd
? ? ? ? ? ? ? ? ? ? ? ? zk_info=""
? ? ? ? ? ? ? ? ? ? ? ? #_echo _zk_cmd $_zk_cmd
? ? ? ? ? ? ? ? ? ? ? ? $_zk_cmd 1>? ? $tmp_file 2>/dev/null
? ? ? ? ? ? ? ? ? ? ? ? zk_version="-"
? ? ? ? ? ? ? ? ? ? ? ? zk_Latency="-"
? ? ? ? ? ? ? ? ? ? ? ? zk_Received="-"
? ? ? ? ? ? ? ? ? ? ? ? zk_Sent="-"
? ? ? ? ? ? ? ? ? ? ? ? zk_Connections="-"
? ? ? ? ? ? ? ? ? ? ? ? zk_Outstanding="-"
? ? ? ? ? ? ? ? ? ? ? ? zk_Mode="-"
? ? ? ? ? ? ? ? ? ? ? ? zk_NodeCount="-"
? ? ? ? ? ? ? ? ? ? ? ? while read oneline ; do
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #echo oneline $oneline
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ "x$oneline" = "x" ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # zk 1? °? ? ? ±? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ `echo $oneline |grep "version" |wc -l` = "1" ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo? ? ? ? ? ? ? ? ? ? ? ? version
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? zk_version=`echo $oneline |awk -F ':' '{print $2}'`
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo zk_version $zk_version
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # zk 2? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ `echo $oneline |grep "Latency" |wc -l` = "1" ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo? ? ? ? ? ? ? ? ? ? ? ? Latency
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? zk_Latency=`echo $oneline |awk -F ':' '{print $2}'`
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo zk_Latency $zk_Latency
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # zk 3? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ `echo $oneline |grep "Received" |wc -l` = "1" ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo? ? ? ? ? ? ? ? ? ? ? ? Received
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? zk_Received=`echo $oneline |awk -F ':' '{print $2}'`
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo zk_Received $zk_Received
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # zk 4? ? ? ? ? ? ? ·? ? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ `echo $oneline |grep "Sent" |wc -l` = "1" ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo? ? ? ? ? ? ? ? ? ? ? ? Sent
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? zk_Sent=`echo $oneline |awk -F ':' '{print $2}'`
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo zk_Sent $zk_Sent
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # zk 5? ? ? ? ? ? ? ? ? ? ? ? ? Connections
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ `echo $oneline |grep "Connections" |wc -l` = "1" ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo? ? ? ? ? ? ? ? ? ? ? ? Connections
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? zk_Connections=`echo $oneline |awk -F ':' '{print $2}'`
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo zk_Connections $zk_Connections
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # zk 6? Outstanding
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ `echo $oneline |grep "Outstanding" |wc -l` = "1" ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo? ? ? ? ? ? ? ? ? ? ? ? Outstanding
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? zk_Outstanding=`echo $oneline |awk -F ':' '{print $2}'`
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo zk_Outstanding $zk_Outstanding
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # zk 7? Zxid
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ `echo $oneline |grep "Zxid" |wc -l` = "1" ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo? ? ? ? ? ? ? ? ? ? ? ? Zxid
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? zk_Zxid=`echo $oneline |awk -F ':' '{print $2}'`
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo zk_Zxid $zk_Zxid
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # zk 8? Mode
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ `echo $oneline |grep "Mode" |wc -l` = "1" ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo? ? ? ? ? ? ? ? ? ? ? ? Mode
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? zk_Mode=`echo $oneline |awk -F ':' '{print $2}'`
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo zk_Mode $zk_Mode
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? # zk 9? Mode
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? if [ `echo $oneline |grep "Node count" |wc -l` = "1" ];then
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo? ? ? ? ? ? ? ? ? ? ? ? Node count
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? zk_NodeCount=`echo $oneline |awk -F ':' '{print $2}'`
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #_echo zk_NodeCount $zk_NodeCount
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? fi
? ? ? ? ? ? ? ? ? ? ? ? done < $tmp_file
? ? ? ? ? ? ? ? ? ? ? ? #printf "%-16.16s%-10.10s%-19.19s%-10.10s%-10.10s%-16.16s%-16.16s%-10.10s\n" "$_zk_ip"? "$_zk_port" "$zk_Latency" "$zk_Received" "$zk_Sent" "$zk_Connections" "$zk_Outstanding" "$zk_Mode"
? ? ? #printf "%-16.16s%-10.10s%-10.10s\n" "$_zk_ip"? "$_zk_port" "$zk_Mode"
? ? ? printf "%-16.16s%-10.10s%-20.20s%-10.10s%-10.10s%-16.16s%-16.16s%-10.10s\n" "$_zk_ip"? "$_zk_port" "$zk_Latency" "$zk_Received" "$zk_Sent"? "$zk_Connections" "$zk_Outstanding" "$zk_Mode"
? ? ? ? fi
rm -f $tmp_file
}
check_zk_status