• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

实战:判断mysql中当前用户的连接数-分组筛选_MySQL

mysql 搞代码 4年前 (2022-01-09) 35次浏览 已收录 0个评论

#connets.sh
#!/bin/sh
#[email protected]
#根据输入参数u或d来显示出对应的用户名或数据库名中用户的连接数.
#也可以输入u 具体用户名或d 具体数据库名做进一步的分组筛选

#set mysql evn
MYSQL_USER=system #mysql的用户名
MYSQL_PASS='password' #mysql的登录用户密码
MYSQL_HOST=192.168.2.188

export black='/033[0m'
export boldblack='/033[1;0m'
export red='/033[31m'
export boldred='/033[1;31m'
export green='/033[32m'
export boldgreen='/033[1;32m'
export yellow='/033[33m'
export boldyellow='/033[1;33m'
export blue='/033[34m'
export boldblue='/033[1;34m'
export magenta='/033[35m'
export boldmagenta='/033[1;35m'
export cyan='/033[36m'
export boldcyan='/033[1;36m'
export white='/033[37m'
export boldwhite='/033[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 “%s/n” “$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 %-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
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 %-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
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 %-20s/n” ,”username”,”connect”;} END{for (i in tt) printf “%-20s %-20s/n” ,i,tt[i]}' ${logfiledate_midd} | grep -v “NULL”
fi
else
c

本文来源gaodai.ma#com搞##代!^码@网3

echon “输入错误!” red
echo ” “
fi
fi

#清除临时文件
rm -rf ${logfiledate_init}
rm -rf ${logfiledate_midd}
rm -rf ${judegedate_01}
rm -rf ${judegedate_02}


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:实战:判断mysql中当前用户的连接数-分组筛选_MySQL

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址