skripting-section:bash:disk-monitoring-skript

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
skripting-section:bash:disk-monitoring-skript [2018/01/04 19:25] – created michaelskripting-section:bash:disk-monitoring-skript [2018/09/25 13:52] (current) – [Skript Sourcecode] michael
Line 1: Line 1:
 +====== Disk Monitoring Skript ======
 +Skript, welches vom mir erstellt wurde, um automatisiert die Disk des backup-Servers auf SMART-Errors zu überprüfen. Fall die Disk die SAMRT-Prüfung nicht mehr besteht, so wird ein Email an den Administrator gesendet!
  
 +===== Skript Sourcecode =====
  
 +''**Filename:** <wrap em>disk_monitoring.sh</wrap>''
  
 +<sxh bash; first-line: 1>
 #!/bin/bash #!/bin/bash
 ############################################################################################ ############################################################################################
-#******************* Disk Monitoring Script by Michael Reber - v 1.**********************#+#******************* Disk Monitoring Script by Michael Reber - v 1.**********************#
 ############################################################################################ ############################################################################################
- +
 ############################################################################################ ############################################################################################
  
Line 15: Line 19:
  
 # Before disk-check test, that disk is mounted! # Before disk-check test, that disk is mounted!
-if grep "$diskToCheck" /etc/mtab > /dev/null 2>&1; then +#if grep "$diskToCheck" /etc/mtab > /dev/null 2>&1; then
- ## System dependency Check: +
- if [ -n "$(command -v apt-get)" ]; then +
- if [ $(dpkg-query -W -f='${Status}' smartmontools 2>/dev/null | grep -c "ok installed") -eq 0 ]; then +
-   apt-get update && apt-get install smartmontools sendemail libnet-ssleay-perl libio-socket-ssl-perl -y; +
- fi +
- else +
- if [ $(yum -q list installed smartmontools &>/dev/null && echo "1" || echo "0") -eq 0 ]; then +
-   #yum install smartmontools -y; +
-   # TO DO +
-   exit 0 +
-   #systemctl start rpcbind && systemctl enable rpcbind; +
- fi +
- fi +
- +
- # Create Disk Smart-OUTPUT and check Status: +
- OUTPUT="$(smartctl -a /dev/sda > /tmp/smartInfo && grep -oP '(?<=test result: )[^ ]+' /tmp/smartInfo)"+
  
- if [ "${OUTPUT}" = "PASSED" ] +uhubctl -a on -p 3 
- then +sleep 10 
-   echo "Disk is Healty!" +        ## System dependency Check: 
-   exit +        if [ -n "$(command -v apt-get)" ]then 
- else +                if [ $(dpkg-query -W -f='${Status}' smartmontools 2>/dev/null | grep -c "ok installed") -eq ]; then 
-   echo "Disk detected a SMART-Error!" +                  apt-get update && apt-get install smartmontools sendemail libnet-ssleay-perl libio-socket-ssl-perl -y; 
-   sendemail -f "mail.blackgate@gmail.com"   \ +                fi 
- -u "DETECTED A SMART-ERROR on `hostname`!"     \ +        else 
- -t "michael.r467@gmail.com"+                if [ $(yum -q list installed smartmontools &>/dev/null && echo "1|| echo "0") -eq 0 ]; then 
- -s "smtp.gmail.com:587" +                  #yum install smartmontools -y; 
- -o tls=yes \ +                  # TO DO 
- -xu "mail.blackgate@gmail.com+                  exit 0 
- -xp "" \ +                  #systemctl start rpcbind && systemctl enable rpcbind; 
- -o message-file="/tmp/smartInfo" +                fi 
- fi +        fi
- exit 0 +
-else +
- echo "Disk is not mountet!" +
-fi+
  
 +        # Create Disk Smart-OUTPUT and check Status:
 +        OUTPUT="$(smartctl -d sat -a /dev/sda > /tmp/smartInfo && grep -oP '(?<=test result: )[^ ]+' /tmp/smartInfo)"
 +        echo "$OUTPUT at $today" >> /var/log/disk-monitoring.log
 +        if [ "${OUTPUT}" = "PASSED" ]
 +        then
 +          echo "Disk is Healty!"
 +        else
 +          echo "Disk detected a SMART-Error!"
 +          sendemail -f "mail.blackgate@gmail.com"   \
 +                -u "DETECTED A SMART-ERROR on `hostname`!"     \
 +                -t "michael.r467@gmail.com" \
 +                -s "smtp.gmail.com:587"  \
 +                -o tls=yes \
 +                -xu "mail.blackgate@gmail.com" \
 +                -xp "PASSWORD" \
 +                -o message-file="/tmp/smartInfo"
 +        fi
 +        # Poweroff Disk and exit program:
 +        uhubctl -a off -p 3
 +        exit 0
 +#else
 +#       echo "Disk is not mountet!"
 +#fi
 +</sxh>
  • skripting-section/bash/disk-monitoring-skript.1515090312.txt.gz
  • Last modified: 2018/01/04 19:39
  • (external edit)