#connets.sh

#!/bin/sh

#ocpyang@126.com

#依据输入參数u或d来显示出相应的username或数据库名中用户的连接数.

#也能够输入u 详细username或d 详细数据库名做进一步的分组筛选

#set mysql evn

MYSQL_USER=system  #mysql的username

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

 cechon  "输入错误!" red

 echo "                              "

 fi

fi

#清除暂时文件

rm -rf ${logfiledate_init}

rm -rf ${logfiledate_midd}

rm -rf ${judegedate_01}

rm -rf ${judegedate_02}

实战:推断mysql中当前用户的连接数-分组筛选的更多相关文章

  1. MySql中添加用户/删除用户

    MySql中添加用户,新建数据库,用户授权,删除用户,修改密码(注意每行后边都跟个;表示一个命令语句结束): 1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 ...

  2. MySQL中的用户与授权

    grant all on *.* to root@'192.168.20.49'; grant select on *.* to root@192.168.20.49 ; -- dba 可以查询 My ...

  3. MySQL中导出用户权限设置的脚本

    在对MySQL数据库进行迁移的时候,有时候也需要迁移源数据库内的用户与权限.对于这个迁移我们可以从mysql.user表来获取用户的相关权限来生成相应的SQL语句,然后在目标服务器上来执行生成的SQL ...

  4. MySQL中创建用户与授权

    参考地址:http://blog.csdn.net/gebitan505/article/details/51726649 一.创建用户(使用root用户登录进入mysql命令行) create us ...

  5. MySQL中创建用户分配权限

    测试环境:CentOS6.8 和 MySQL5.5.4 一 需求 在项目开发的过程中可能需要开放自己的数据库给别人,但是出于安全的考虑,不能同时开放自己服务器里的其他数据库.那么可以新建一个用户,赋予 ...

  6. 删除mysql中root用户恢复方法

    1.# service mysqld stop  #停止mysql数据库服务 2.# service mysqld start --skip-grant-tables #跳过授权表启动mysql数据库 ...

  7. MySql中添加用户,新建数据库,用户授权,删除用户,修改密码

    1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Passw ...

  8. 查看MySql中每个IP的连接数

    要统计数据库的连接数,我们通常情况下是统计总数,没有细分到每个IP上.现在要监控每个IP的连接数,实现方式如下: ) as ip , count(*) from information_schema. ...

  9. 恢复mysql 中root 用户的所有权限

    今天在研究数据库的时候不小心吧root用户的权限全给关了.这就尴尬了. 找了半天的解决方案. 如果你的用grant all 无法设定某个用户的权限可以试试这个方法. 1停止mysql服务器.使用ski ...

随机推荐

  1. spring-qualifier解释

    如果一个class有两个对应的beanId,在Autowired的时候,必须指定Qualifier("指定其中一个beanId"). org.springframework.bea ...

  2. java里面List和Array的区别是什么?

    java里面的List和Array的区别是什么? 1:数组是定长,list是自动增长.2:数组效率高,list效率低.总结:数组牺牲功能增加效率,list牺牲效率增加功能. http://bbs.cs ...

  3. json数据相对于xml数据.

    JSON is a valid subset of JavaScript, Python, and YAML JSON parsing is generally faster than XML par ...

  4. ESXi控制台TSM:弥补vSphere Client不足

    当vSphere Client不能完成某些任务时,主机的ESXi控制台及其技术支持模式(TSM)可能能派上用场. ESXi控制台允许管理员执行不能通过vSphere Client进行配置的管理任务,比 ...

  5. iOS9.3 Could not find Developer Disk Image 真机调试错误解决办法

    昨天手机系统升级9.3,到了公司真机测试的时候发现Xcode(7.2.1)报错:Could not find Developer Disk Image , 这是因为我的Xcode7.2中还没有支持9. ...

  6. Swift中可选型的Optional Chaining 和 Nil-Coalesce(Swift2.1)

    /* 下面是介绍Optional Chaining 和 Nil-Coalesce */ // Optional Chaining (可选链) if let errorMessage = errorMe ...

  7. 使用C#代码追加和提交文件到SVN服务器

    windows系统下使用svn的命令需要安装一个插件,下载地址:http://sourceforge.net/projects/win32svn/?source=typ_redirect 安装后程序会 ...

  8. Python正则表达式一

    推荐 http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html#!comments 这篇博客超好,建议收藏. 不过对于正则表达式小白,他没 ...

  9. 数据库SQLite在Qt5+VS2012使用规则总结---中文乱码

    VS2012默认格式为 "GB2312-80",而有时我们用到字符串需要显示中文时,就会出现乱码.下面仅就Qt5和VS2012中使用数据库SQLite时,做一个简单的备忘录 #in ...

  10. CClientDC

    CClientDC(客户区设备上下文)用于客户区的输出,它在构造函数中封装了GetDC(),在析构函数中封装了ReleaseDC()函数.一般在响应非窗口重画消息(如键盘输入时绘制文本.鼠标绘图)绘图 ...