Knowledgebase
Check high load script on linux server
Posted by Premium Reseller on 27 October 2018 08:40 AM


#!/bin/bash

exec >> highload.log

NOTIFY="20"

TRUE="1"
FTEXT='load average:'
LOAD1MIN="$(uptime | awk -F "$FTEXT" '{ print $2 }' | cut -d, -f1 | sed 's/ //g')"

RESULT=$(echo "$LOAD1MIN > $NOTIFY" | bc)

if [ "$RESULT" == "$TRUE" ]; then
    echo "============================================== "
    echo "High load" $LOAD1MIN at $(date '+%d/%m/%Y %H:%M:%S')
    top -n1 -b | head -n 25 >> highload.log
    killall -9 httpd

else
    if (( $(ps -ef | grep -v grep | grep httpd | wc -l) == 0 ))
    then
       echo "=============================================="
       echo Current load $LOAD1MIN at $(date '+%d/%m/%Y %H:%M:%S')
       echo "Restart apache ..."
       /etc/init.d/httpd start
       echo "Apache restarted at" $(date '+%d/%m/%Y %H:%M:%S')
    fi
fi


(0 vote(s))
This article was helpful
This article was not helpful