监控mysql的show processlist脚本

本文介绍了一个Shell脚本,用于自动化记录MySQL进程列表,并将其保存为日志文件。脚本首先检查并创建日志目录,然后检查并创建特定日期的日志文件。通过调用mysqladmin命令获取进程列表,统计连接数,并在连接数超过10时详细记录涉及'delete'操作的进程。最后,脚本提供了一个简单的定时执行机制。

脚本输出日志 

#!/bin/sh
 
username=
passwd=
host=
date=`date +%Y%m%d`
log_dir=/data/logs/process_list/

# -d 参数判断 $log_dir是否存在
if [ ! -d "$log_dir"]; then
 mkdir "$log_dir"
fi
 
# -f 参数判断 $log_dir$date.log是否存在
if [ ! -f "$log_dir$date.log" ]; then
 touch "$log_dir$date.log"
fi 
 
n=`mysqladmin processlist -u$username -p$passwd -h$host| wc -l`
date_time=`date +%Y%m%d[%H:%M:%S]`
echo "-----------------------------------------------------------------------------" >>$log_dir$date.log
echo "Time:"$date_time >>$log_dir$date.log
echo "连接数:"$n >>$log_dir$date.log
if [ "$n" -gt 10 ];then
    IFS=$'n' #
    for line in `mysqladmin processlist -u$username -p$passwd -h$host`
    do

    strB="delete"
    result=$(echo $line  | grep "${strB}")
    if [[ "$result" != "" ]]
    then
      echo $line >>$log_dir$date.log
    else
      echo "不包含"
    fi
    
    done
fi

本地不能上网,不想安装crontab,所以使用简单方式定时执行

#!/bin/bash
step=1
for ((;;))
do
    sh "上面的脚本"
sleep $step
done

参照:

https://www.jb51.net/article/100490.htm

https://www.cnblogs.com/weijiangbao/p/7862278.html

http://xuejiehome.com/blread-2008.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值