#!/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. DotNETCore 学习笔记 配置

    Configuration var builder = new ConfigurationBuilder(); builder.AddInMemoryCollection(); var config ...

  2. 2017年上海金马五校程序设计竞赛:Problem A : STEED Cards (STL全排列函数)

    Description Corn does not participate the STEED contest, but he is interested in the word "STEE ...

  3. mysql 表的类型

    MySQL 数据表主要支持六种类型 ,分别是:BDB.HEAP.ISAM.MERGE.MYISAM.InnoBDB. 这六种又分为两类,一类是”事务安全型”(transaction-safe),包括B ...

  4. wxpython学习资源

    http://www.cnblogs.com/dyx1024/archive/2012/07/15/2592202.html wxPython:布局管理器sizer介绍 ogs.com/dyx1024 ...

  5. container_of分析--可用good【转】

    转自:http://blog.csdn.net/tigerjibo/article/details/8299589 版权声明:本文为博主原创文章,未经博主允许不得转载. 1.container_of宏 ...

  6. JMeter 定时器(Synchronizing Timer)之集合点应用

    性能测试中我们经常提到一个概念就是“并发”,其实在实际真实的性能测试中是不存在真正的并发的.为了更真实的模拟对一个请求的并发测试场景,我们通常设置一个集合点,JMeter中提供了这样的一个功能设置. ...

  7. STL各个数据结构特点

    STL容器特征总结 2011-11-09 11:10:50|  分类: STL|举报|字号 订阅     STL中顺序容器类和关联式容器类的主要特征如下:(1)Vector 1.内部数据结构:连续存储 ...

  8. idea配置maven自动下载 源码和文档

    勾上图中红框处,即可

  9. [ kvm ] 进程的处理器亲和性和vCPU的绑定

    cpu调用进程或线程的方式: Linux内核的进程调度器根据自有的调度策略将系统中的一个进程调度到某个CPU上执行.一个进程在前一个执行时间是在cpuM上运行,而在后一个执行时间则是在cpuN上运行, ...

  10. gaggd

    ####算法一 暴力枚举所有可能的$a_2$并递推判断.复杂度$O(r \times k)$,预期得分10分. ####算法二 $a_k$可以表示为$a_1$与$a_2$的线性组合.使用递推计算出系数 ...