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