#!/bin/sh

#ocpyang@126.com

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

}

#set mysql evn

MYSQL_USER=system  #mysql的username

MYSQL_PASS='password'  #mysql的登录用户密码

MYSQL_HOST=192.168.2.188

#1.the server infomation

echo "the system basic infomation:"

echo "***********************************************************************"

echo

hostname=`hostname`  #主机名

ipaddress=`ifconfig |grep 'inet addr:'| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'` #IP地址

gtway=`cat  /etc/sysconfig/network|grep GATEWAY|awk -F "=" '{print $2}'` #网关

cpuinfo=`cat /proc/cpuinfo|grep "name"|cut -d: -f2 |awk '{print "*"$1,$2,$3,$4}'|uniq -c` #cpu

phmem=`dmidecode | grep -A 16 "Memory Device$" |grep Size:|grep -v "No Module Installed"|awk '{print "*" $2,$3}'|uniq -c` #物理内存数量

sysver=`cat /etc/issue | head -1` #--系统版本号

kerver=`uname -a  |awk '{print $3}'`  #内核版本号

#mem usage

mem_total=$(free -m |grep Mem|awk '{print $2}')

mem_used=$(free -m |grep Mem|awk '{print $3}')

mem_rate=`expr $mem_used/$mem_total*100|bc -l`

cechon "1.1 server hostname is:" red

echo ${hostname}

cechon "1.2 server ipaddree is: " red

echo  ${ipaddress}

cechon "1.3 server gateway is: " red

echo ${gtway}

cechon "1.4 server cpuinfo is: " red

echo ${cpuinfo}

cechon "1.5 server Physical memory number is: " red

echo ${phmem}

cechon "1.6 server version  is: " red

echo ${sysver}

cechon "1.7 server system kernel version is: " red

echo ${kerver}

cechon "1.8 server Physical memory number is:" red

echo  ${phmem}

cechon "1.9 server  memory usage rate is: " red

echo ${mem_rate:0:5}%

cechon "1.10 server  disk usage  is: " red

echo

#disk usage

df -H |awk -F '\t' '{ print $1,$2,$3,$4,$5,$6}'

echo

cechon "1.11 server  CPU load average  is: " red

echo

uptime | awk 'BEGIN{print "1min, 5min, 15min"}   {print $10,$11,$12}'

echo

cechon "1.12 server  started services   is: " red

echo

chkconfig --list | grep on

echo

echo

cechon "1.13 server  CPU free   is: " red

top -b -n 1 | grep Cpu | awk '{print $5}' | cut -f 1 -d "."

echo

cechon "1.14 mysql ESTABLISHED connect   is: " red

echo

netstat -an -t | grep ":3306" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort |sed  's/^::ffff://'

echo

cechon "1.15 server  ESTABLISHED  TCP connect number   is: " red

echo

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

echo

echo

echo "***********************************************************************"

echo

#2.mysql版本号

v_01="select @@version;"

v_02="v02.`date +%Y%m%d%H%M%S`.txt"

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${v_01}" >${v_02}

v_03=`cat ${v_02} | grep -v @@version`

cechon "2.1 mysql runing version is: ${v_03} " red

echo "                                                                           "

rm -rf ${v_02}

mysql_port=`cat /usr/local/mysql/my.cnf |grep port| sed -n 1p`

cechon "2.2 mysql port is: ${mysql_port} " red

echo "                                                                           "

#3.系统mysql的进程数

mysql_processnum=`ps -ef | grep "mysql" | grep -v "grep" | wc -l`

cechon "3. mysql process number is: ${mysql_processnum} " red

echo "                                                                           "

#4.client连接的mysql进程数

conn_01="conn01.`date +%Y%m%d%H%M%S`.txt"

conn_02="show processlist;"

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${conn_02}" | grep -v Id >${conn_01}

client_conn_num=`cat ${conn_01} |wc -l`

cechon "4. mysql client connect number  is: ${client_conn_num} " red

echo "                                                                           "

rm -rf ${conn_01}

#5.QPS(每秒事务量)

qps_01="show global status like 'Questions';"

qps_re="qpsre.`date +%Y%m%d%H%M%S`.txt"

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${qps_01}" |grep -v Variable_name \

|cut -f 2 >${qps_re}

qps_02=`cat ${qps_re}`

qps_03=`cat /proc/uptime |awk '{print $1}'`  

qps_04=`awk 'BEGIN{print '${qps_02}' / '${qps_03}'}'` #shell默认不支持浮点运算

cechon "5. current mysql server QPS is: ${qps_04:0:5} " red

echo "                                                                           "

rm -rf ${qps_re}

#6.TPS(每秒事务量)

tps_01="show  status where Variable_name in('Com_commit'); "

tps_02="show  status where Variable_name in('Com_rollback'); "

tps_re01="tpsre01.`date +%Y%m%d%H%M%S`.txt"

tps_re02="tpsre02.`date +%Y%m%d%H%M%S`.txt"

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${tps_01}" |grep -v Variable_name \

|cut -f 2 >${tps_re01}

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${tps_02}" |grep -v Variable_name \

|cut -f 2 >${tps_re02}

tps_03=`cat ${tps_re01}`

tps_04=`cat ${tps_re02}`

tps_sum=`awk 'BEGIN{print '${tps_03}' + '${tps_04}'}'` #shell默认不支持浮点运算

tps_uptime=`cat /proc/uptime |awk '{print $1}'`

tps_avg=`awk 'BEGIN{print '${tps_sum}' / '${tps_uptime}'}'` #shell默认不支持浮点运算

cechon "6. current mysql server TPS is: ${tps_avg} " red

echo "                                                                           "

rm -rf ${tps_re01}

rm -rf ${tps_re02}

#7.key Buffer 命中率

#key_buffer_read_hits = (1-key_reads / key_read_requests) * 100%

kbrd_01="show  status like 'Key_reads'; "

kbrd_02="show  status like 'Key_read_requests'; "

kbrd_re01="kbrd01.`date +%Y%m%d%H%M%S`.txt"

kbrd_re02="kbrd02.`date +%Y%m%d%H%M%S`.txt"

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${kbrd_01}" |grep -v Variable_name \

|cut -f 2 >${kbrd_re01}

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${kbrd_02}" |grep -v Variable_name \

|cut -f 2 >${kbrd_re02}

kbrd_03=`cat ${kbrd_re01}`

kbrd_04=`cat ${kbrd_re02}`

if [ "${kbrd_03}" -eq 0 ];then

 cechon "7.1 there is no any value!" green

 echo "                                                                           "

else

 kbrd_05=`awk 'BEGIN{print '${kbrd_03}' / '${kbrd_04}'}'` #shell默认不支持浮点运算

 kbrd_06=`awk 'BEGIN{print '1-${kbrd_05}'}'` #shell默认不支持浮点运算

 key_buffer_read_hits=`awk 'BEGIN{print '${kbrd_06}' * 100}'`

 cechon "7.1 current mysql key_buffer_read_hits is: ${key_buffer_read_hits:0:5}% " red

 echo "                                                                           "

fi

rm -rf ${kbrd_re01}

rm -rf ${kbrd_re02}

#key_buffer_write_hits = (1-key_writes / key_write_requests) * 100%

kbwd_01="show  status like 'Key_writes'; "

kbwd_02="show  status like 'Key_write_requests'; "

kbwd_re01="kbwd01.`date +%Y%m%d%H%M%S`.txt"

kbwd_re02="kbwd02.`date +%Y%m%d%H%M%S`.txt"

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${kbwd_01}" |grep -v Variable_name \

|cut -f 2 >${kbwd_re01}

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${kbwd_02}" |grep -v Variable_name \

|cut -f 2 >${kbwd_re02}

kbwd_03=`cat ${kbwd_re01}`

kbwd_04=`cat ${kbwd_re02}`

if [ "${kbwd_03}" -eq 0  ] ;then

 cechon "7.2 there is no any value!" green

 echo "                                                                           "

else

 kbwd_05=`awk 'BEGIN{print '${kbwd_03}' / '${kbwd_04}'}'` #shell默认不支持浮点运算

 kbwd_06=`awk 'BEGIN{print '1-${kbwd_05}'}'` #shell默认不支持浮点运算

 key_buffer_write_hits=`awk 'BEGIN{print '${kbwd_06}' * 100}'`

 cechon "7.2 current mysql key_buffer_write_hits is: ${key_buffer_write_hits:0:5}% " red

 echo "                                                                           "

fi

rm -rf  ${kbwd_re01}

rm -rf  ${kbwd_re02}

#8.InnoDB Buffer命中率

#Innodb_buffer_read_hits = (1 - innodb_buffer_pool_reads / innodb_buffer_pool_read_requests) * 100%

innob_01="show  status like 'Innodb_buffer_pool_reads'; "

innob_02="show  status like 'Innodb_buffer_pool_read_requests'; "

innob_re01="innob_re01.`date +%Y%m%d%H%M%S`.txt"

innob_re02="innob_re02.`date +%Y%m%d%H%M%S`.txt"

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${innob_01}" |grep -v Variable_name \

|cut -f 2 >${innob_re01}

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${innob_02}" |grep -v Variable_name \

|cut -f 2 >${innob_re02}

innob_03=`cat ${innob_re01}`

innob_04=`cat ${innob_re02}`

if [ "${innob_03}" -eq 0  ] ;then

 cechon "8. there is no any value!" green

 echo "                                                                           "

else

 innob_05=`awk 'BEGIN{print '${innob_03}' / '${innob_04}'}'` #shell默认不支持浮点运算

 innob_06=`awk 'BEGIN{print '1-${innob_05}'}'` #shell默认不支持浮点运算

 innodb_buffer_read_hits=`awk 'BEGIN{print '${innob_06}' * 100}'`

 cechon "8. current mysql Innodb_buffer_read_hits is: ${innodb_buffer_read_hits:0:5}% " red

 echo "                                                                           "

fi

rm -rf ${innob_re01}

rm -rf ${innob_re02}

#9.Query Cache命中率

#Query_cache_hits =((Qcache_hits/(Qcache_hits+Qcache_inserts+Qcache_not_cached))*100)

qc_01="show  status like 'Qcache_hits'; "

qc_02="show  status like 'Qcache_inserts'; "

qc_03="show  status like 'Qcache_not_cached'; "

qc_re01="qc_re01.`date +%Y%m%d%H%M%S`.txt"

qc_re02="qc_re02.`date +%Y%m%d%H%M%S`.txt"

qc_re03="qc_re03.`date +%Y%m%d%H%M%S`.txt"

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${qc_01}" |grep -v Variable_name \

|cut -f 2 >${qc_re01}

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${qc_02}" |grep -v Variable_name \

|cut -f 2 >${qc_re02}

mysql -h${MYSQL_HOST} -u${MYSQL_USER} -p${MYSQL_PASS} -e"${qc_03}" |grep -v Variable_name \

|cut -f 2 >${qc_re03}

qc_04=`cat ${qc_re01}`

qc_05=`cat ${qc_re02}`

qc_06=`cat ${qc_re03}`

if [ "${qc_04}" -eq 0  ] ;then

 cechon "9. there is no any value!" green

 echo "                                                                           "

else

 qc_07=`awk 'BEGIN{print '${qc_04}' + '${qc_05}' + '${qc_06}' }'`

 qc_08=`awk 'BEGIN{print  '${qc_04}'/'${qc_07}'}'`

 query_cache_hits=`awk 'BEGIN{print '${qc_08}' * 100}'`

 cechon "9. current mysql query_cache_hits is: ${query_cache_hits:0:5}% " red

 echo "                                                                           "

fi

rm -rf ${qc_re01}

rm -rf ${qc_re02}

rm -rf ${qc_re03}

mysql性能检查脚本-部分的更多相关文章

  1. keepalived健康检查及双主MySQL健康检查脚本

    一.http检查 HTTP_GET:工作在第5层,向指定的URL执行http请求,将得到的结果用md5加密并与指定的md5值比较看是否匹配,不匹配则从服务器池中移除:此外还可以指定http返回码来判断 ...

  2. linux系统mysql连接检查脚本

    为了便于检查ECS服务器内部搭建的mysql或者RDS的mysql数据库,编写了一个mysql测试脚本,对于不熟悉命令行操作的朋友出现问题时可以检测一下.       脚本下载地址: http://j ...

  3. 一个简易的MysQL性能查询脚本

    如下: #!/bin/sh mysqladmin -P3306 -uroot -p ext |\ awk -F"|" \ "BEGIN{ count=0; }" ...

  4. MySQL性能分析脚本

    #!/usr/bin/python #!coding:utf-8 import mysql.connector as connector import json """ ...

  5. 简易的mysql性能查询脚本

    #!/bin/bash mysqladmin -P3306 -uroot -p -h127. -r -i ext |\ awk -F"|" \ "BEGIN{ count ...

  6. MYSQL性能优化的最佳20+条经验

    MYSQL性能优化的最佳20+条经验 2009年11月27日 陈皓 评论 148 条评论  131,702 人阅读 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数 ...

  7. 借助 MySQLTuner 优化 MySQL 性能(转载的一篇文章)

    MySQLTuner 是一个 Perl 脚本,可以用来分析您的 MySQL 性能,并且基于收集到的信息给出相应的优化建议.这样子,您就可以调整 my.cnf 从而优化您的 MySQL 设置. 这边只是 ...

  8. 二十种实战调优MySQL性能优化的经验

    二十种实战调优MySQL性能优化的经验 发布时间:2012 年 2 月 15 日 发布者: OurMySQL 来源:web大本营   才被阅读:3,354 次    消灭0评论     本文将为大家介 ...

  9. MySQL性能优化的21个最佳实践

    http://www.searchdatabase.com.cn/showcontent_38045.htm MySQL性能优化的21个最佳实践 1. 为查询缓存优化你的查询 大多数的MySQL服务器 ...

随机推荐

  1. linux基础——磁盘分区和yum安装

    第一部分 1) 开启Linux系统前添加一块大小为15G的SCSI硬盘   2) 开启系统,右击桌面,打开终端   3) 为新加的硬盘分区,一个主分区大小为5G,剩余空间给扩展分区,在扩展分区上划分1 ...

  2. java Class.forName()

    Java程序在运行时,Java运行时系统一直对所有的对象进行所谓的运行时类型标识.这项信息纪录了每个对象所属的类. 虚拟机通常使用运行时类型信息选准正确方法去执行,用来保存这些类型信息的类是Class ...

  3. tushrea知识笔记

    生成时间序列: dates = pandas.date_range('2013-01-01',periods = 6) Pandas读取excel数据: df=pd.read_excel(" ...

  4. rtsp 学习

    1.1.   RTSP协议简介 一种应用层协议,可基于tcp或udp协议. Real Time Streaming Protocol或者RTSP(实时流媒体协议),是由Real network 和 N ...

  5. yii2中判断数据表是否存在数据库中(原创)

    分为两步: 第一步,找出数据库中所有表名,表名得到的是二维数组. 第二步,判断表名是否存在二维数组中 下面就贴我的代码咯. $table_name =‘table’; $juge = $handle- ...

  6. (五)mysql表操作和约束条件

    (1)表基本操作 1)创建表 create table 表名(字段 数据类型 约束条件) mysql> create table student1(id int,name varchar(50) ...

  7. xunsearch: 开启后台服务,索引……随笔记录

    重启后台服务: cd $prefix ; bin/xs-ctl.sh restart 索引: # 导入 MySQL 数据库的 dbname.tbl_post 表到 demo 项目中,并且平滑重建 ut ...

  8. CentOS下MySQL主从复制,读写分离

    1.环境:所有系统都是CentOS5.5 mysql-5.6.31-2.el5,MySQL中都没有数据 主服务器IP为192.168.128.230 从服务器IP为192.168.128.235 代理 ...

  9. Servlet 2.3 规范

    Servlet2.3规范 第一章: servlet2.3规范用到了一下的一些规范:J2EE.JSP1.1.JNDI 在14章中讲述了规范中的所有的classes类或接口(改文中不讲述).对开发者而言以 ...

  10. [BZOJ1502]月下柠檬树(自适应辛普森积分)

    1502: [NOI2005]月下柠檬树 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 1387  Solved: 739[Submit][Status] ...