1
0
Pārlūkot izejas kodu

Added system load check with deeper analyses & warning condition for empty local backups

pmacko 1 nedēļu atpakaļ
vecāks
revīzija
7b445ad872
1 mainītis faili ar 58 papildinājumiem un 17 dzēšanām
  1. 58 17
      update.sh

+ 58 - 17
update.sh

@@ -5,7 +5,7 @@
 #########################################################################
 
 #------------------------------ VARIABLES ------------------------------#
-VER="0.7"
+VER="0.8"
 
 #------------------------------- SYSTEM --------------------------------#
 checkhw(){
@@ -43,18 +43,53 @@ fi
 }
 checklog(){
 if [ -f /var/log/wtmp ]; then
-	echo "==============================================="
-	echo -e "- \e[1;32mLAST [LOGGED] USERS\e[0m"
-	echo "==============================================="
-	last | head -5
-	sleep 2
+        echo "==============================================="
+        echo -e "- \e[1;32mLAST [LOGGED] USERS\e[0m"
+        echo "==============================================="
+        last | head -5
+        sleep 2
+else
+        touch /var/log/wtmp
+        chmod 0664 /var/log/wtmp
+        chown root:utmp /var/log/wtmp
+        #apt-get -y -qq install wtmpdb
+fi
+}
+checksys(){
+echo "==============================================="
+echo -e "- \e[1;32mCHECK [SYSTEM] LOAD\e[0m"
+echo "==============================================="
+checkload(){
+LOAD=$(cat /proc/loadavg | awk '{print $1}' | awk '{print ($0-int($0)<0.499)?int($0):int($0)+1}')
+LOAD1=$(cat /proc/loadavg | awk '{print $1}')
+LOAD23=$(cat /proc/loadavg | awk {'print $2,$3'})
+TRIGGER=$(grep pro /proc/cpuinfo | grep -v model -c)
+if [ "$LOAD" -ge "$TRIGGER" ];
+then
+        echo -e "\e[1;31m$LOAD1\e[0m $LOAD23 system \e[1;31mLOAD\e[0m"
+        sed -i '/clear/d' /usr/bin/process-stat.sh
+        /usr/bin/process-stat.sh
 else
-	touch /var/log/wtmp
-	chmod 0664 /var/log/wtmp
-	chown root:utmp /var/log/wtmp
-	#apt-get -y -qq install wtmpdb	
+        echo -e "\e[1;32m$LOAD1\e[0m $LOAD23 system \e[1;32mLOAD\e[0m"
 fi
 }
+checkload
+checkram(){
+free -m | awk 'NR==2{printf "%s/%sMB (%.2f%%)\n", $3,$2,$3*100/$2 }' > /tmp/umem
+MEMPER=$(cat /tmp/umem | awk '{print $NF}' | sed 's/\./ /g' | awk '{print $1}' | sed 's/(//g')
+MEMORY=$(cat /tmp/umem)
+if [ "$MEMPER" -gt "75" ];
+then
+        echo -e "\e[1;31m$MEMORY\e[0m consumed \e[1;31mRAM\e[0m"
+        sed -i '/clear/d' /usr/bin/memory-stat
+        /usr/bin/memory-stat
+else
+        echo -e "\e[1;32m$MEMORY\e[0m consumed \e[1;32mRAM\e[0m"
+fi
+}
+checkram
+sleep 2
+}
 checkserv(){
 echo "==============================================="
 echo -e "- \e[1;32mCHECK [SYSTEM] SERVICES\e[0m"
@@ -79,7 +114,12 @@ if [ -d /backup/ ]; then
         echo "==============================================="
         echo -e "- \e[1;32mCHECK [LOCAL] BACKUPS\e[0m"
         echo "==============================================="
-        ls -laftr /backup/*.gz | grep "$(date +%m)" | tail -4
+        if ! find . -type f -name "*.gz" | grep -q .;
+        then
+                echo -e "\e[1;31mMissing\e[0m backups in [ \e[1;31m/backup/\e[0m]"
+        else
+                ls -laftr /backup/*.gz | grep "$(date +%m)" | tail -4
+        fi
         sleep 2
 fi
 if [ -d /home/cisco/backups/ ]; then
@@ -122,7 +162,7 @@ if [ ! -z "$DST" ]; then
         echo "==============================================="
         echo -e "- \e[1;32mCHECK [PVE-MAIN-CONFIG] BACKUPS\e[0m"
         echo "==============================================="
-	ls -laftr $DST/pve/ | grep "$(date +%y%m)" | tail -3
+        ls -laftr $DST/pve/ | grep "$(date +%y%m)" | tail -3
         sleep 2
 fi
 if [ -f /home/pve_backup.sh ]; then
@@ -166,11 +206,11 @@ fi
 checkdmsg(){
 DMS=$(dmesg --level=emerg,alert,crit,err | head -1 | awk '{print $1}')
 if [ ! -z $DMS ]; then
-	echo "==============================================="
-	echo -e "- \e[1;33mCHECK [DMSG] ERROR LOGS\e[0m"
-	echo "==============================================="
-	dmesg --level=emerg,alert,crit,err --ctime
-	sleep 2
+        echo "==============================================="
+        echo -e "- \e[1;33mCHECK [DMSG] ERROR LOGS\e[0m"
+        echo "==============================================="
+        dmesg --level=emerg,alert,crit,err --ctime
+        sleep 2
 fi
 }
 cleanos(){
@@ -188,6 +228,7 @@ clear
 checkhw
 checkos
 checklog
+checksys
 checkserv
 checkmail
 checkbck