Server load alerts shell script
Simple Server load alerts shell script to monitor your server load average, Free Memory and Swap status, Disk space information. etc., Please make sure this script will not cause extra load average on your cpanel server. This shell script will send alert to your email account when the server load goes more than 10.
cd /root
vi loadalert
EMAIL="your email" SUBJECT="Alert $(hostname) load average is $L05" TEMPFILE="/tmp/$(hostname)" TOPLOAD="10" echo "Load average Crossed allowed limit." >> $TEMPFILE echo "Hostname: $(hostname)" >> $TEMPFILE echo "Local Date & Time : $(date)" >> $TEMPFILE echo "| Uptime status: |" >> $TEMPFILE echo "-------------------------------------------" >> $TEMPFILE /usr/bin/uptime >> $TEMPFILE echo "-------------------------------------------" >> $TEMPFILE echo "| Top 20 CPU consuming processes: |" >> $TEMPFILE ps aux | head -1 >> $TEMPFILE ps aux --no-headers | sort -rn +2 | head -20 >> $TEMPFILE echo "| Top 10 memory-consuming processes: |" >> $TEMPFILE ps aux --no-headers| sort -rn +3 | head >> $TEMPFILE echo "-------------------------------------------" >> $TEMPFILE echo "| Memory and Swap status: |" >> $TEMPFILE /usr/bin/free -m >> $TEMPFILE echo "-------------------------------------------" >> $TEMPFILE echo "| Active network connection: |" >> $TEMPFILE echo "-------------------------------------------" >> $TEMPFILE /bin/netstat -tnup | grep ESTA >> $TEMPFILE echo "-------------------------------------------" >> $TEMPFILE echo "| Disk Space information: |" >> $TEMPFILE echo "-------------------------------------------" >> $TEMPFILE /bin/df -h >> $TEMPFILE echo "-----------------THE END-------------------" >> $TEMPFILE L05="$(uptime|awk '{print $(NF-2)}'|cut -d. -f1)" if test $L05 -gt $TOPLOAD then mail -s "$SUBJECT $L05" "$EMAIL" < $TEMPFILE fi rm -f $TEMPFILE
chmod 755 loadalert
Updated this script on your cronjob
echo “*/5 * * * * /root/loadalert >/dev/null 2>&1″ >> /var/spool/cron/root
Restart cron service
/etc/init.d/crond restart