Startseite » wie man » Festplattenmonitor-Skript für Linux-Headless-Server

    Festplattenmonitor-Skript für Linux-Headless-Server

    Moderne Festplatten haben einen internen Mechanismus namens S.M.A.R.T. Dadurch kann man wissen, wann eine Festplatte kurz vor dem Ausfall steht. Wäre es nicht nett vom Server, Sie vor einem solchen Fehler per E-Mail zu benachrichtigen??

    Überblick

    Bei Programmen wie dem „mdadm“ (für Software-RAID-Management) und dem „Palimpsest Disk Utility“ (auf der Ubuntu LiveCD verwendet) verwenden Sie die S.M.A.R.T-Informationen, um Sie darüber zu informieren, wenn die Festplatte kurz davor ist oder ausfällt. Auf einem Headless-Server (ohne GUI) gibt es jedoch keinen Dienst, der Sie über den bevorstehenden Untergang informiert, bevor es zu spät ist. Wie würden Sie darüber Bescheid wissen, ohne sich manuell beim Server anmelden zu müssen??

    Wenn dieses Skript einmal am Tag mit cron ausgeführt wird, wird eine Warnmeldung ausgegeben, wenn die Anzahl der fehlerhaften Sektoren des Systems einen Grenzwert erreicht hat, der absichtlich niedriger ist als der Schwellenwert für die Festplatte ist schlecht.

    Voraussetzungen und Annahmen

    • Sie haben die E-Mail-Unterstützung für den Server bereits eingerichtet. Verwenden Sie dazu das Handbuch "So richten Sie E-Mail-Benachrichtigungen unter Linux ein".
    • Sie verwenden ein Debian-basiertes System.
    • Sie verwenden keinen * Hardware-RAID-Controller.
    • Sie werden sehen, dass ich VIM als Editorprogramm verwende. Dies ist nur deshalb so, weil ich daran gewöhnt bin ... Sie können jeden anderen Editor verwenden, den Sie möchten.

    * Da es sehr wahrscheinlich ist, dass der Hardware-RAID-Controller den Zugriff des Systems auf diese Informationen blockiert.

    Konfiguration

    Installieren Sie das "smartmontools" -Paket, das die S.M.A.R.T-Informationen vom Festplattencontroller liest und uns zur Verfügung stellt.

    sudo aptitude installieren smartmontools

    Erstellen Sie das Monitorskript:

    sudo vim /root/smart-monitor.sh

    Machen Sie es zu seinem Inhalt:

    #! / bin / bash
    ######## E-Mail-Funktion ########
    email_admin_func ()

    echo "An: [email protected]"> $ temp_email_file
    echo "From: [email protected]" >> $ temp_email_file
    echo "Betreff: S.M.A.R.T-Schwellenwert überschritten" >> $ temp_email_file
    echo "" >> $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    echo "Eine E-Mail an den Admin gesendet"

    smartc_func ()

    / usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d" -f11

    ######## Ende der Funktionen ########

    ######## Arbeitsparameter einstellen ########
    temp_email_file = / tmp / smart_monitor.txt
    allowed_threshold = 5 #setze die Anzahl der fehlerhaften Sektoren, mit denen du leben willst, empfohlen 5.

    ########Motor########
    für i in sda sdb; do # Hinzufügen oder Entfernen von Datenträgernamen aus dieser Liste, je nach Ihrem Setup.
    if [["smartc_func $ i" -Ge $ Allowed_threshold]]; dann
    echo E-Mail an den Administrator
    email_admin_func "Eine der HDs auf" 'hostname' "hat den oberen Schwellenwert erreicht !!! nDer Schwellenwert wurde festgelegt auf: $ allowed_threshold und der Status der $ i-Festplatte:" 'smartc_func $ i' "" "
    fi
    erledigt

    Die wichtigsten Punkte zu beachten sind:

    • E-Mail-Funktion - Legen Sie die entsprechenden Informationen wie den Computernamen und die Administrator-E-Mail fest.
    • Zulässiger Schwellenwert - Stellen Sie diesen Parameter auf den Wert ein, den Sie für angemessen halten. Ich habe 5 verwendet, da der Grenzwert für die verwendeten Server-Laufwerke auf 10 gesetzt wurde. (Ich habe den Schwellenwert für "Consumer-Grade" -Laufwerke gefunden so hoch wie 140 sein.
    • Stellen Sie die Geräte ein, die Sie überwachen möchten, indem Sie die Aufzählung der Datenträgernamen in der "for" -Schleife anpassen. Momentan sind zwei Festplatten (sda & sdb) enthalten, passen Sie also Ihre Einstellungen an. Sie können alle Datenträger oder nur einige davon einschließen, wenn Sie * aus irgendeinem Grund einen Datenträger ausschließen müssen.

    * In meinem ursprünglichen Setup war die erste Festplatte ein Flash-Laufwerk. Daher ist das Lesen der Informationen, wenn überhaupt möglich, nicht von großem Nutzen.

    Machen Sie das Skript ausführbar:

    sudo chmod + x /root/smart-monitor.sh

    Das Setup ist abgeschlossen.

    Planen Sie die automatische Ausführung des Skripts

    Wir möchten, dass das Skript automatisch ausgeführt wird, sodass wir einen neuen Cron-Job dafür erstellen.
    Wie im Leitfaden "How To Email Emails unter Linux einrichten" beschrieben, lautet das Ergebnis: Wenn das Skript selbst auf einen Fehler stößt, informiert uns cron automatisch per E-Mail, sobald es passiert.

    Öffnen Sie den Cron-Job-Scheduler:

    Sudo Crontab -e

    Fügen Sie dies zu seinem Inhalt hinzu:

    0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_run.log

    Dadurch wird festgelegt, dass das Skript jeden Morgen um 7:00 Uhr ausgeführt wird.


    Alle Ihre Branche gehört zu uns :)