Friday 8 March 2013

load alert and monitor apache connections bash script


#! /bin/bash
if [ `uptime | awk '{ print$11 }' | cut -d. -f1` -gt 0 ];
then
netstat -plan |grep :80 | awk '{print $5}' |cut -d: -f1 |sort |uniq -c |sort -n > /tmp/conn.txt
echo " " > /root/mail_list
exec < /tmp/conn.txt
while read line
do
  con=$(echo $line | awk '{print $1}')
   if [ "$con" -gt "8" ];
      then
IP=$(echo $line | awk '{print $2}')
echo "Load Average:" > /root/mail_list
echo "=============" >> /root/mail_list
echo "Current Load:`cat /proc/loadavg | awk '{print $1}'`" >> /root/mail_list
echo "5 mins Before:`cat /proc/loadavg | awk '{print $2}'`" >> /root/mail_list
echo "15 mins before:`cat /proc/loadavg | awk '{print $3}'`" >> /root/mail_list
echo "The ip $IP has $con connections" >> /root/mail_list
else
continue;
fi
done
echo "`cat /root/mail_list`" |mail -s "Load and IP connections at `date`" user@gmail.com -v
#exit
else
echo "The server load is normal now `uptime | awk '{ print$10 }'`" >/dev/null 2>&1
fi