#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. nginx配置学习文章

    partOne 自我释义部分 我的是阿里云的ubuntu *******实际上感觉这里是基本配置,很用不到*********#定义其用户或用户组user www-data;#nginx的进程数,应当为 ...

  2. AppCanCSS背景图片的属性

    最近在用AppCan框架技术做跨平台移动应用开发,碰到界面布局设计中图片平铺.拉伸效果. 我们用到的是CSS 3中Background-size属性. 网上查了下这个属性,小记下: 取值: backg ...

  3. PHP 执行系统外部命令 system() exec() passthru()

    区别: system() 输出并返回最后一行shell结果. exec() 不输出结果,返回最后一行shell结果,所有结果可以保存到一个返回的数组里面. passthru() 只调用命令,把命令的运 ...

  4. Redis,MemCached,MongoDB 概述

    调研项目主要有Redis. MemCached. MongoDB,以及Amazon的DynamoDB Redis 是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key- ...

  5. Design Pattern —— Prototype /Template Method/Iterator/Composite/Bridge

    Prototype /Template Method/Iterator/Composite/Bridge 为什么把这五种设计模式放一起呢,没什么太高大上的原因,就是因为这五种模式JAVA开发最基本的特 ...

  6. C#基础学习第一天(.net菜鸟的成长之路-零基础到精通)

    1.Net平台和C#编程语言的概念 2.桌面应用程序: 我们要使用桌面应用程序,必须要安装该应用程序的客户端. winform应用程序. Application:应用程序 Internet:互联网应用 ...

  7. dom方法读取xml(不常用)

    Book.java package com.xml.demo; public class Book { private int id; private String name; private Flo ...

  8. uva 755 - 487--3279

    #include <iostream> #include <string> #include <map> #include <algorithm> #i ...

  9. Ecshop布局参考图

    文章列表页: article_cat.dwt 文章内容页: article.dwt 商品品牌页: brand.dwt 所有分类页: catalog.dwt 商品列表页: category.dwt 商品 ...

  10. java学习笔记(13) —— google GSON 实现json转化方法

    1.配置struts.xml <action name="getGsonAction" class="com.test.action.json.GetGsonAct ...