#connets.sh

#!/bin/sh

#ocpyang@126.com

#根据输入参数u或d来显示出对应的用户名或数据库名中用户的连接数.

#也可以输入u 具体用户名或d 具体数据库名做进一步的分组筛选


#set mysql evn

MYSQL_USER=system  #mysql的用户名

MYSQL_PASS='password'  #mysql的登录用户密码

MYSQL_HOST=192.168.2.188


if [ "$#" -lt 1 ];then

echo "**********************************"

echo "you must input paraters"

echo "**********************************"

echo "USAGE01: $0 d |$0 d database_name" 

echo "eg01: $0 d|$0 d mysql" 

echo "USAGE02: $0 u  |$0 u username" 

echo "eg02: $0 u  |$0 u wind" 

exit 1; 

fi


#Case conversion

ipt=`echo $1 |tr '[a-z]' '[A-Z]'` 



#source /usr/local/mysql/scripts/mysql_env.ini


logfiledate_init="tmpinit.`date +%Y%m%d%H%M%S`.txt"


logfiledate_midd="tmpmidd.`date +%Y%m%d%H%M%S`.txt"


judegedate_01="judegedate01.`date +%Y%m%d%H%M%S`.txt"


judegedate_02="judegedate02.`date +%Y%m%d%H%M%S`.txt"


mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"show processlist;" >${logfiledate_init}




if [ "$#" -eq 1 ]; then

if [ "$ipt" = 'D' ];then

awk '{tt[$4]++} BEGIN { printf  "%-20s %-20s\n" ,"dbname","connect";} END{for (i in tt) printf "%-20s %-20s\n" ,i,tt[i]}' ${logfiledate_init}  | grep -v "NULL"

elif  [ "$ipt" = 'U' ];then

awk '{tt[$2]++} BEGIN { printf  "%-20s %-20s\n" ,"username","connect";} END{for (i in tt) printf "%-20s %-20s\n" ,i,tt[i]}' ${logfiledate_init}  | grep -v "NULL"

else

echo "**************************************************************"

echo "输入错误!"

echo "**************************************************************"

fi

elif [ "$#" -eq 2 ]; then

grep -i $2  ${logfiledate_init} > ${logfiledate_midd}

if [ "$ipt" = 'D'  ];then

SCHEMA_JUDEGE01="select schema_name from information_schema.schemata where schema_name='$2';"

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${SCHEMA_JUDEGE01}" >${judegedate_01}

if [ ! -s "${judegedate_01}" ];then

echo "**************************************************************"

echo "you input schema_name $2 not exits,pleae check your schema_name"

echo "**************************************************************"

rm -rf ${SCHEMA_JUDEGE01}

exit 0

else

awk '{tt[$4]++} BEGIN { printf  "%-20s %-20s\n" ,"dbname","connect";} END{for (i in tt) printf "%-20s %-20s\n" ,i,tt[i]}' ${logfiledate_midd}  | grep -v "NULL"

fi

elif  [ "$ipt" = 'U' ];then

SCHEMA_JUDEGE02="select user from mysql.user where user='$2';"

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${SCHEMA_JUDEGE02}" >${judegedate_02}

if [ ! -s "${judegedate_02}" ];then

echo "**************************************************************"

echo "you input username $2 not exits,pleae check your user_name"

echo "**************************************************************"

rm -rf ${SCHEMA_JUDEGE02}

exit 0

else

awk '{tt[$2]++} BEGIN { printf  "%-20s %-20s\n" ,"username","connect";} END{for (i in tt) printf "%-20s %-20s\n" ,i,tt[i]}' ${logfiledate_midd}  | grep -v "NULL"

fi

else

echo "**************************************************************"

echo "输入错误!"

echo "**************************************************************"

fi

fi

 


#清除临时文件

rm -rf ${logfiledate_init}

rm -rf ${logfiledate_midd}

rm -rf ${judegedate_01}

rm -rf ${judegedate_02}