实战:判断mysql中当前用户的连接数-分组筛选 #connets.sh #!/bin/sh #ocpyang@126.com #根据输入参数u或d来显示出对应的用户名或数据库名中用户的连接数. #也可以输入u 具体用户名或d 具体数据库名做进一步的分组筛选 #set mysql evn mysql_user=system #mys
实战:判断mysql中当前用户的连接数-分组筛选#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
export black='33[0m'
export boldblack='33[1;0m'
export red='33[31m'
export boldred='33[1;31m'
export green='33[32m'
export boldgreen='33[1;32m'
export yellow='33[33m'
export boldyellow='33[1;33m'
export blue='33[34m'
export boldblue='33[1;34m'
export magenta='33[35m'
export boldmagenta='33[1;35m'
export cyan='33[36m'
export boldcyan='33[1;36m'
export white='33[37m'
export boldwhite='33[1;37m'
cecho ()
## -- function to easliy print colored text -- ##
# color-echo.
# 参数 $1 = message
# 参数 $2 = color
{
local default_msg="no message passed."
message=${1:-$default_msg} # 如果$1没有输入则为默认值default_msg.
color=${2:-black} # 如果$1没有输入则为默认值black.
case $color in
black)
printf "$black" ;;
boldblack)
printf "$boldblack" ;;
red)
printf "$red" ;;
boldred)
printf "$boldred" ;;
green)
printf "$green" ;;
boldgreen)
printf "$boldgreen" ;;
yellow)
printf "$yellow" ;;
boldyellow)
printf "$boldyellow" ;;
blue)
printf "$blue" ;;
boldblue)
printf "$boldblue" ;;
magenta)
printf "$magenta" ;;
boldmagenta)
printf "$boldmagenta" ;;
cyan)
printf "$cyan" ;;
boldcyan)
printf "$boldcyan" ;;
white)
printf "$white" ;;
boldwhite)
printf "$boldwhite" ;;
esac
printf "%sn" "$message"
tput sgr0 # tput sgr0即恢复默认值
printf "$black"
return
}
cechon ()
# color-echo.
# 参数1 $1 = message
# 参数2 $2 = color
{
local default_msg="no message passed."
# doesn't really need to be a local variable.
message=${1:-$default_msg} # 如果$1没有输入则为默认值default_msg.
color=${2:-black} # 如果$1没有输入则为默认值black.
case $color in
black)
printf "$black" ;;
boldblack)
printf "$boldblack" ;;
red)
printf "$red" ;;
boldred)
printf "$boldred" ;;
green)
printf "$green" ;;
boldgreen)
printf "$boldgreen" ;;
yellow)
printf "$yellow" ;;
boldyellow)
printf "$boldyellow" ;;
blue)
printf "$blue" ;;
boldblue)
printf "$boldblue" ;;
magenta)
printf "$magenta" ;;
boldmagenta)
printf "$boldmagenta" ;;
cyan)
printf "$cyan" ;;
boldcyan)
printf "$boldcyan" ;;
white)
printf "$white" ;;
boldwhite)
printf "$boldwhite" ;;
esac
printf "%s" "$message"
tput sgr0 # tput sgr0即恢复默认值
printf "$black"
return
}
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 %-20sn" ,"dbname","connect";} end{for (i in tt) printf "%-20s %-20sn" ,i,tt[i]}' ${logfiledate_init} | grep -v "null"
elif [ "$ipt" = 'u' ];then
awk '{tt[$2]++} begin { printf "%-20s %-20sn" ,"username","connect";} end{for (i in tt) printf "%-20s %-20sn" ,i,tt[i]}' ${logfiledate_init} | grep -v "null"
else
cechon "输入错误!" red
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
cechon "you input schema_name $2 not exits,pleae check your schema_name" red
rm -rf ${schema_judege01}
exit 0
else
awk '{tt[$4]++} begin { printf "%-20s %-20sn" ,"dbname","connect";} end{for (i in tt) printf "%-20s %-20sn" ,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
cechon "you input username $2 not exits,pleae check your user_name" red
rm -rf ${schema_judege02}
exit 0
else
awk '{tt[$2]++} begin { printf "%-20s %-20sn" ,"username","connect";} end{for (i in tt) printf "%-20s %-20sn" ,i,tt[i]}' ${logfiledate_midd} | grep -v "null"
fi
else
cechon "输入错误!" red
echo " "
fi
fi
#清除临时文件
rm -rf ${logfiledate_init}
rm -rf ${logfiledate_midd}
rm -rf ${judegedate_01}
rm -rf ${judegedate_02}
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:)!