MySQL监控脚本

#!/bin/bash
#
#

usage() {
echo "Usage: $0 [ types... ] [ limit ] "
echo ""
echo "Types are:"
echo "[ Size ] [ Rss ] [ Swap ] [ Private ] [ Shared ]"
echo ""
printf "%-12s%-12s\n" "[ Size ]" "程序映射的内存大小,非实际占用"
printf "%-12s%-12s\n" "[ Rss ]" "实际使用内存大小(包括独占+共享)"
printf "%-12s%-12s\n" "[ Swap ]" "使用的虚拟内存大小"
printf "%-12s%-12s\n" "[ Private ]" "程序独占内存大小"
printf "%-12s%-12s\n" "[ Shared ]" "程序与其他进程共享内存大小"echo ""
echo "For example : $0 Swap 10"
echo ""
}

mem() {
printf "%-20s%-100s%-20s%-20s\n" "PID" "PRO_NAME" "SIZE(m)" "%RATIO"
for pid in `ls /proc/ |grep ^[0-9]`
do

if [ ${pid} -eq 1 ];then
    continue
  fi

grep -q $1 /proc/${pid}/smaps 2>/dev/null

if [ $? -eq 0 ];then
    memsize=`free -m |grep "Mem" |awk ‘{print $2}‘`
    swapsize=`free -m |grep "Swap" |awk ‘{print $2}‘`
    size=`cat /proc/$pid/smaps |grep $1 |awk ‘{sum+=$2;} END{print sum/1024}‘`
    pro_name=`ps aux | grep -w "$pid" | grep -v grep  |awk ‘{print $11}‘`
    ratioval() {
    if [ ‘$1‘ = Swap ];then
      ratio=`awk "BEGIN{print $size/$swapsize*100 \"%\"}"`
    else
      ratio=`awk "BEGIN{print $size/$memsize*100 \"%\"}"`
    fi
      echo $ratio
    }
    ratioval
    printf "%-20s%-100s%-20s%-20s\n" "${pid}" "${pro_name}" "${size}" "$ratio"

fi
done | sort -n -r -k 3  | head -$2
}

if [ $# -eq 0 ]; then 
    usage 
 else
    mem $1 $2
fi

时间: 2024-12-26 16:55:42

MySQL监控脚本的相关文章

关于mysql监控脚本怎么写会比较好的记录

最近,自己业务进行上线,上线后,需要考虑的是对各种服务进行监控,包括(httpd服务,mysqld服务等),现在想以mysqld服务为例总结下那种方式的脚本最为专业和合理: (1).根据mysql的端口号来监控mysql的服务.(常见于监控mysql的本地服务) 比较常见的一个脚本: 1 netstat -natup|grep mysqld|awk -F'[ :]+' '{print $5}' 上面是将mysqld的端口号进行了过滤,这个方法的缺点是:有可能是端口在,但是服务可能是不正常的.例如

mysql监控脚本二

==========主从状态监控================= export LANG=en_US.UTF-8 # monitor master-slave  监控主从同步 hostip="10.136.13.92" user="root" pass="[email protected]" message="" # 监控主从同步状态 slaveStatus=$(mysql -u${user} -p${pass}  mysq

Zabbix Windos mysql 监控脚本

说明:判断mysql主进程是否关闭,如果关闭则返回0 创建文件:MySQL-ping.vbs Set objFS = CreateObject("Scripting.FileSystemObject") Set objArgs = WScript.Arguments str1 = getCommandOutput("C:\Program Files\MySQL\MySQL Server 5.5\bin\mysqladmin -uroot -pqaz123wsx ping&qu

zabbix:percona mysql监控插件使用方法

一.配置Zabbix Agent 1.插件安装及配置 下载地址:https://www.percona.com/downloads/percona-monitoring-plugins/ 安装percona的监控mysql软件包: rpm -ivh percona-zabbix-templates-1.1.7-1.noarch.rpm 查看rpm安装的文件路径: [[email protected] ~]# rpm -ql percona-zabbix-templates-1.1.7-1.noa

mysql和nginx服务是否正常监控脚本

一.监控web服务器和mysql方法 1.监控端口(nginx也相同) 1.1本地监控 netstat -tunlp|grep 3306|wc -l ss -tunlp|grep 3306|wc -l 1.2远程监控 nmap 10.117.33.98 -p 3306|grep open|wc -l echo -e "\n"|telnet 10.117.33.98 3306 2>/dev/null |grep Connected|wc -l 2.监控进程(nginx同) ps -

MySQL的keepalived高可用监控脚本

MySQL的keepalived高可用监控脚本 MySQL(或者其它服务)的keepalived高可用监控脚本 开发脚本需求 :我们知道,keepalive是基于虚拟ip的存活来判断是否抢占master的机制的,但是如果我们做了MySQL的keepalived的高可用的时候,就要考虑一种情况的发生,那就是如果机器网卡并没有断,二十由于MySQL服务的不稳定,或者人为的误操作,导致的服务关闭,会引起的结果就是,keepalive并不会切换,因为并不是主master的虚拟ip不存在,而是服务已经停止

mysql主从同步监控脚本

mysql主从同步监控脚本,利用mysql从库中的IO和SQL进程以及延迟时间来监控主从同步是否正常,详细shell脚本如下: #!/bin/bash #author wangning #date 2017-7-17 #qq 1198143315 #Email [email protected] ################################## define variable############################# define_variable(){ ip

Mysql 监控小脚本

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司.Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一.MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性.MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言.MyS

监控mysql主从脚本

一.下载并解压sendEmail cd /usr/local/src wget tar -zxvf sendEmail-v1.56.tar.gz cp sendEmail-v1.56/sendEmail /usr/local/bin/     拷贝之后就能用了 发邮件命令: sendEmail [email protected] -t [email protected] -s smtp.163.com -u "test"-xu zhang_peicheng -xp xxxxxxxxxx