apache,php-fpm,mysql进程linux系统实时监控shell程序

apache,php-fpm,mysql进程linux系统资源实时监控shell程序(LAMP)

#!/bin/bash
:<<BLOCK
shell名称:httpd监控程序 php-fpm,mysql进程监控shell
auth:河北强商网络科技有限公司
介绍:本shell程序用于实时监控httpd,php-fpm,mysql的进程和资源消耗情况,涉及内存,cpu资源监控。
BLOCK

  
while((1))
do
date
httpdnum=`ps axu |grep httpd |grep -v grep |wc -l`
echo 'httpd 进程总数:'${httpdnum}

httpdnum=`ps axu |grep mysql |grep -v grep|wc -l`
echo 'mysql 进程总数:'${httpdnum}

httpdnum=`ps axu |grep php-fpm |grep -v grep|wc -l`
echo 'php-fpm 进程总数:'${httpdnum}

#tcp detail
  echo 'tcp 3306端口 tcp details:'${httpd}
  netstat -tan|awk '$4~/:3306/{print $NF}'|sort |uniq -c|sort -nr
  echo 'tcp 80 端口 状态:'
  netstat -tan|awk '$4~/:80/{print $NF}'|sort |uniq -c|sort -nr
 echo -e "\n\n"
 #常驻内存

  sum=0
  num=0
  for mem in `ps axu |grep httpd |grep -v grep | awk '{print $6}' | grep -v '^0.0'`
  do 
     sum=$(($sum+$mem))
     num=$(($num+1))
  done
average=$(($sum/$num))
echo "httpd消耗RSS总量,包括1个root开启的父进程:${sum}kB"
echo "httpd进程rss非0进程总数,包括1个root开启的父进程:${num}个"
echo "每个进程平均消耗RSS总量:${average}kB"
 echo -e "\n\n"
#httpd的cpu占比
  sum=0
  num=0
  for mem in `ps axu |grep httpd|grep -v grep | awk '{print $3}' | grep -v '^0.0'`
  do 
     sum=`bc -l <<< $sum+$mem`
     num=$(($num+1))
  done
if((num==0))
	then  
    average=0;
	else
average=`bc -l <<< $sum/$num`
fi
 
echo "httpd消耗%CPU总量,包括1个root开启的父进程:${sum}%"
echo "httpd进程总数非0总数,包括1个root开启的父进程:${num}个"
echo "每个非cpu=0的进程平均消耗CPU总量:${average}%"

 echo -e "\n\n"
#httpd的内存占比
 
  sum=0
  num=0
  for mem in ` ps axu |grep httpd|grep -v grep | awk '{print $4}' | grep -v '^0.0'`
  do 
     sum=`bc -l <<< $sum+$mem`
     num=$(($num+1))
     
  done
if((num==0))
	then  
    average=0;
	else
average=`bc -l <<< $sum/$num`
fi
 
 



echo "httpd消耗%MEM总量,包括1个root开启的父进程:${sum}%"
echo "httpd进程总数非0总数,包括1个root开启的父进程:${num}个"
echo "每个非MEM=0的进程平均消耗MEM总量:${average}%"


#php-fpm========================================================================================================
    
 echo -e "\n\n"
  sum=0
  num=0
  for mem in `ps axu |grep php-fpm |grep -v grep | awk '{print $6}' | grep -v '^0.0'`
  do 
     sum=$(($sum+$mem))
     num=$(($num+1))
  done
if((num==0))
	then  
    average=0;
	else
average=`bc -l <<< $sum/$num`
fi
echo "php-fpm消耗RSS总量,包括1个root开启的父进程:${sum}kB"
echo "php-fpm进程rss非0进程总数,包括1个root开启的父进程:${num}个"
echo "每个进程平均消耗RSS总量:${average}kB"
 echo -e "\n\n"
# 的cpu占比
  sum=0
  num=0
  for mem in `ps axu |grep php-fpm|grep -v grep | awk '{print $3}' | grep -v '^0.0'`
  do 
     sum=`bc -l <<< $sum+$mem`
     num=$(($num+1))
  done
if((num==0))
	then  
    average=0;
	else
average=`bc -l <<< $sum/$num`
fi
 
echo "php-fpm消耗%CPU总量,包括1个root开启的父进程:${sum}%"
echo "php-fpm进程总数非0总数,包括1个root开启的父进程:${num}个"
echo "每个非cpu=0的进程平均消耗CPU总量:${average}%"
 

 echo -e "\n\n"
# 的内存占比
 
  sum=0
  num=0
  for mem in ` ps axu |grep php-fpm|grep -v grep | awk '{print $4}' | grep -v '^0.0'`
  do 
     sum=`bc -l <<< $sum+$mem`
     num=$(($num+1))
     
  done
if((num==0))
	then  
    average=0;
	else
average=`bc -l <<< $sum/$num`
fi
 
 



echo "php-fpm消耗%MEM总量,包括1个root开启的父进程:${sum}%"
echo "php-fpm进程总数非0总数,包括1个root开启的父进程:${num}个"
echo "每个非MEM=0的进程平均消耗MEM总量:${average}%"


#mysql============================================================================================================
  
 echo -e "\n\n"
  sum=0
  num=0
  for mem in `ps axu |grep mysql |grep -v grep | awk '{print $6}' | grep -v '^0.0'`
  do 
     sum=$(($sum+$mem))
     num=$(($num+1))
  done
average=$(($sum/$num))
echo "mysql消耗RSS总量,包括1个root开启的父进程:${sum}kB"
echo "mysql进程rss非0进程总数,包括1个root开启的父进程:${num}个"
echo "每个进程平均消耗RSS总量:${average}kB"
 echo -e "\n\n"

# 的cpu占比
  sum=0
  num=0
  for mem in `ps axu |grep mysql|grep -v grep | awk '{print $3}' | grep -v '^0.0'`
  do 
     sum=`bc -l <<< $sum+$mem`
     num=$(($num+1))
  done
if((num==0))
	then  
    average=0;
	else
average=`bc -l <<< $sum/$num`
fi
 
echo "mysql消耗%CPU总量,包括1个root开启的父进程:${sum}%"
echo "mysql进程总数非0总数,包括1个root开启的父进程:${num}个"
echo "每个非cpu=0的进程平均消耗CPU总量:${average}%"

 


 echo -e "\n\n"
# 的内存占比
 
  sum=0
  num=0
  for mem in ` ps axu |grep mysql|grep -v grep | awk '{print $4}' | grep -v '^0.0'`
  do 
     sum=`bc -l <<< $sum+$mem`
     num=$(($num+1))
     
  done
if((num==0))
	then  
    average=0;
	else
average=`bc -l <<< $sum/$num`
fi
 
 



echo "mysql消耗%MEM总量,包括1个root开启的父进程:${sum}%"
echo "mysql进程总数非0总数,包括1个root开启的父进程:${num}个"
echo "每个非MEM=0的进程平均消耗MEM总量:${average}%"

sleep 2s
echo -e "\n\n\n\n"
done







#进程detail
# echo 'httpd 进程 details:'${httpd}
# ps axu |grep httpd |grep -v grep

# echo 'mysql 进程 details:'${httpd}
# ps axu |grep mysql |grep -v grep

#  echo 'php-fpm 进程 details:'${httpd}
# ps axu |grep php-fpm |grep -v grep



发布了16 篇原创文章 · 获赞 0 · 访问量 667

猜你喜欢

转载自blog.csdn.net/yaqiang2017/article/details/104055969