show processlist出现很多Sleep状态的线程kill掉

#!/bin/sh  
while :
do
  n=`mysqladmin -uroot -p*** processlist | grep -i sleep | wc -l`
  date=`date +%Y%m%d\[%H:%M:%S]`
  echo $n

  if [ "$n" -gt 10 ]
  then
    for i in `mysqladmin -uroot -p*** processlist | grep -i sleep | awk '{print $2}'`
    do
      mysqladmin  -uroot -p*** kill $i
    done
    echo "sleep is too many i killed it" >> /root/tmp/sleep.log
    echo "$date : $n" >> /root/tmp/sleep.log
  fi
sleep 120 #每隔120 秒 执行一次
done

 

你可能感兴趣的:(mysql)