工具箱说明
1、主从复制状态
2、mysql增删改查次数
3、mysql启动时间
4、mysql的qps 每秒查询速率、tps 每秒事务速率
5、主从同步延迟
6、磁盘剩余空间 /分区 /data分区
7、内存使用百分比
8、swap使用百分比
9、网卡输入输出流量
10、mysql的当前连接数
#! /usr/bin/bash
echo "
============================================
工具箱说明
1、主从复制状态
2、mysql增删改查次数
3、mysql启动时间
4、mysql的qps 每秒查询速率、tps 每秒事务速率
5、主从同步延迟
6、磁盘剩余空间 /分区 /data分区
7、内存使用百分比
8、swap使用百分比
9、网卡输入输出流量
10、mysql的当前连接数
q、退出程序
=============================================
"
## mysql 数据库用户、密码
user=XXXX # 数据库用户
passwd=XXXXXXXX # 数据库密码
# 1、主从复制状态
mysql_master(){
mysql -u$user -p$passwd -e "show slave status\G" 2> /dev/null > mysql_sele.txt
IO=`grep "Slave_IO_Running:" mysql_sele.txt | awk '{print $NF}'`
SQL=`grep "Slave_SQL_Running:" mysql_sele.txt | awk '{print $NF}'`
rm -rf mysql_sele.txt
if [ -z "$IO" ];then
echo "Slave_IO_Running:" 主从检查异常
else
echo "Slave_IO_Running:" $IO
fi
if [ -z "$SQL" ];then
echo "Slave_SQL_Running:" 主从检查异常
else
echo "Slave_SQL_Running:" $SQL
fi
}
# 2、mysql增删改查次数
mysql_all(){
select=`mysql -u$user -p$passwd -e "show global status like 'Com_select';" 2> /dev/null | tail -1 | awk '{print $2}'`
delete=`mysql -u$user -p$passwd -e "show global status like 'Com_delete';" 2> /dev/null | tail -1 | awk '{print $2}'`
insert=`mysql -u$user -p$passwd -e "show global status like 'Com_insert';" 2> /dev/null | tail -1 | awk '{print $2}'`
update=`mysql -u$user -p$passwd -e "show global status like 'Com_update';" 2> /dev/null | tail -1 | awk '{print $2}'`
echo "insert次数:"$insert
echo "delete次数:"$delete
echo "update次数:"$update
echo "select次数:"$select
echo "增删改查次数:" $[ $select + $delete + $insert + $update ]
}
# 3、mysql启动时间
mysql_time(){
untime=`mysql -u$user -p$passwd -e "show global status like 'uptime';" 2> /dev/null | tail -1 | awk '{print $2}'`
echo "uptime:" $untime 秒
}
# 4、mysql的qps 每秒查询速率、tps 每秒事务速率
# 5、主从同步延迟
mysql_mastertime(){
mysql -u$user -p$passwd -e "show slave status\G" 2> /dev/null > mysql_sele.txt
Master_time=`grep "Seconds_Behind_Master" mysql_sele.txt | awk '{print $NF}'`
rm -rf mysql_sele.txt
echo "主从同步延迟时间:"$Master_time 秒
}
# 6、磁盘剩余空间 /分区 /data分区
data_a(){
echo "/分区剩余空间:" `df -Th | awk '/\/$/{print $(NF -2)}'`
echo "data分区剩余空间:" `df -Th | awk '/\/data$/{print $(NF -2)}'`
}
# 7、内存使用百分比
mem(){
all_Mem=`free | tail -2 | head -1 |awk '{print $2}'`
user_sMem=`free | tail -2 | head -1 | awk '{print $3}'`
echo "内存使用率:" $[ $user_sMem * 100 /$all_Mem ] %
}
# 8、swap使用百分比
swap(){
all_swap=`free | tail -1 | awk '{print $2}'`
user_swap=`free | tail -1 | awk '{print $3}'`
echo "swap使用率:" $[ $user_swap * 100 /$all_swap ] %
}
# 9、网卡输入输出流量
ens33(){
while :
do
loadin=`cat /proc/net/dev | awk '/ens33/{print $2}'`
userin=`cat /proc/net/dev | awk '/ens33/{print $10}'`
sleep 1
loadin2=`cat /proc/net/dev | awk '/ens33/{print $2}'`
userin2=`cat /proc/net/dev | awk '/ens33/{print $10}'`
echo "网络状态" 下载: $[ ($loadin2 - $loadin) / 1024 ]kb 上传: $[ ($userin2 - $userin) / 1024 ]kb
done
}
# 10、mysql的当前连接数
mysql_link(){
linka_mysql=`mysql -u$user -p$passwd -e "SHOW STATUS LIKE 'Threads_connected'" 2> /dev/null | tail -1 | awk '{print $2}'`
echo "mysql的当前连接数:"$linka_mysql
}
read -p "请输入序号:" numb
case $numb in
1) mysql_master ;;
2) mysql_all ;;
3) mysql_time ;;
4) echo "待开发,请重新输入"
exit ;;
5) mysql_mastertime ;;
6) data_a ;;
7) mem ;;
8) swap ;;
9) ens33 ;;
10) mysql_link ;;
q) exit ;;
*) echo "输入有误,请重新输入"
exit ;;
esac