#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. mysql的distinct理解

    select distinct id,name from route where update_time>=''; 上面的sql语句的逻辑是两条记录的id,name只要有一个不一样,就算不一样. ...

  2. (转)TortoiseSVN使用简介

    TortoiseSVN使用简介 TortoiseSVN使用简介 2009-04-24 来源:dev.idv.tw 1 安装及下载client 端 2 什么是SVN(Subversion)? 3 为甚么 ...

  3. linux学习笔记<命令介绍>

    主要介绍日常工作中一些常用的命令,内容均整理自慕课网 命令提示符 [root@hgs ~]# 其中: root : 当前登录用户 hgs : 主机名 ~ : 当前所在目录(家目录),对于root用户, ...

  4. IIS应用程序池数目

    今天突然遇到一个问题,访问线上站点,数据处理过之后,访问页面有时是404,有时不是404,而404页面刷新几次之后就正常了. 经过大神们指点之后,发现竟然是应用程序池惹的祸. 分析下原因,在代码里面数 ...

  5. C#中从元数据

    元数据相对我们来说通俗点 就是你引用里面引用的那些dll比如 对Thread 按F12  不就是提示从元数据,..

  6. 1.3.4 try-with-resources (TWR)

    其基本设想是把资源(比如文件或类似的东西)的作用域限定在代码块内,当程序离开这个代码块时,资源会被自动关闭: 要确保try-with-resources生效,正确的用法是为各个资源声明独立变量: 目前 ...

  7. php与http协议

    1.预定义变量$_SERVER     $_SERVER 是一个包含了诸如头信息(header).路径(path).以及脚本位置(script locations)等等信息的数组. 可以再后台输出 f ...

  8. python内置函数(4)

    12.pow:      >>> 2**10 1024 >>> pow(2,10) 1024 13.repr():忽略.. 14.reversed():反转.. 1 ...

  9. 无线通信技术协议-Zigbee 3.0

    物联网的无线通信技术有:短距离的无线局域网通信技术和长距离的无线广域网通信技术. 短距离局域网通信技术有Zigbee.Wi-Fi.Bluetooth.Z-wave.6LoWPAN等. 长距离广域网通信 ...

  10. 如何获取网站icon

    获取网站icon,常用最简单的方法就是通过website/favicon.ico来获取,不过由于很多网站都是在页面里面设置favicon(<link rel="shortcut ico ...