Its a small but very helpful bash script to monitor server load. Once the server load reaches the threshold value ( here 5 ) , this script will send a mail to the specified address with the following details ” results of top , free , process which are taking more cpu resources and w ”
1) Create the script
>>> vi /usr/local/scripts/load_monitoring.sh
###################
#!/bin/bash
load=`cat /proc/loadavg | awk {'print $1}' | cut -d. -f1`
if [ "$load" -ge "5" ]; then
echo -e " \n#######Process details from Hostname ######\n" >> /tmp/topresult
ps –eo pid,user,%cpu,args --sort %cpu | tail -20 >> /tmp/topresult
echo -e " \n#######Server Memory Details ######" >> /tmp/topresult
free -m >> /tmp/topresult
echo -e " \n#######Server Load details######" >> /tmp/topresult
w >> /tmp/topresult
mail -s "CPU usage high on Hostname" [email protected] < /tmp/topresult
> /tmp/topresult
fi
###################
2) Add the script in your crontab
>>> crontab -e
#### Load Monitoring ######
*/10 * * * * /bin/bash /usr/local/scripts/load_monitoring.sh > /dev/null 2>&1
Hope this will help you to monitor your servers in critical situations
Recent Comments