Script di monitoraggio del disco rigido per server Linux senza testa

Sommario:

Script di monitoraggio del disco rigido per server Linux senza testa
Script di monitoraggio del disco rigido per server Linux senza testa

Video: Script di monitoraggio del disco rigido per server Linux senza testa

Video: Script di monitoraggio del disco rigido per server Linux senza testa
Video: Creare un logo GRATIS senza installare NESSUN software *PAZZESCO* | Stile Gaming & ZanoXVII - YouTube 2024, Novembre
Anonim
I moderni hard disk hanno un meccanismo interno chiamato S.M.A.R.T. attraverso il quale è possibile sapere quando un hard disk sta per fallire. Non sarebbe carino da parte del server mandarti una email prima di un tale fallimento?
I moderni hard disk hanno un meccanismo interno chiamato S.M.A.R.T. attraverso il quale è possibile sapere quando un hard disk sta per fallire. Non sarebbe carino da parte del server mandarti una email prima di un tale fallimento?

Panoramica

Programmi come "mdadm" (per la gestione del software RAID) e "Palimpsest Disk Utility" (usati sul LiveCD di Ubuntu), usano le informazioni di S.M.A.R.T per informarti quando il disco sta per o è fallito. Tuttavia su un server headless (senza GUI) non esiste un servizio che ti informerà della morte in sospeso prima che sia troppo tardi. Inoltre, come lo sapresti senza accedere manualmente al server?

Questo script, quando viene eseguito una volta al giorno con cron, avviserà se il conteggio dei settori danneggiati di uno dei dischi rigidi del sistema ha raggiunto un limite che è deliberatamente inferiore alla soglia "il disco è scadente" e invia l'avviso all'amministratore della macchina tramite e-mail.

Prerequisiti e ipotesi

  • Hai già impostato il supporto via email per il server utilizzando la guida "Come impostare gli avvisi via e-mail su Linux".
  • Stai usando un sistema basato su Debian.
  • Non stai usando un controller RAID hardware *.
  • Mi vedrai usare VIM come programma di editor, questo solo perché sono abituato … puoi usare qualsiasi altro editor che vorresti.

* Perché è molto probabile che il controller RAID hardware blocchi l'accesso del sistema a queste informazioni.

Impostare

Installare il pacchetto "smartmontools" che legge le informazioni di S.M.A.R.T dal controller del disco rigido e ce lo presenta.

sudo aptitude install smartmontools

Crea lo script del monitor:

sudo vim /root/smart-monitor.sh

Rendi questo è contenuto:

#!/bin/bash ########Email function######## email_admin_func() { echo 'To: [email protected]' > $temp_email_file echo 'From: [email protected]' >> $temp_email_file echo 'Subject: S.M.A.R.T monitor Threshold breached' >> $temp_email_file echo '' >> $temp_email_file echo -e $1 >> $temp_email_file /usr/sbin/ssmtp -t < $temp_email_file echo 'Sent an Email to the Admin' }

smartc_func() { /usr/sbin/smartctl -A /dev/$1 | grep Reallocated_Sector_Ct |tr -s ' '|cut -d' ' -f11 }

########End of Functions########

########Set working parameter######## temp_email_file=/tmp/smart_monitor.txt allowed_threshold=5 #set the amount of bad sectors your willing to live with, recommended 5.

########Engine######## for i in sda sdb; do # Add or subtract disk names from this list as appropriate for your setup. if [ '`smartc_func $i`' -ge $allowed_threshold ]; then echo Emailing the Administrator email_admin_func 'One of the HDs on '`hostname`', has reached the upper threshold limit!!! nThe threshold was set to:$allowed_threshold and the $i disk status was: '`smartc_func $i`'' fi done

I punti chiave da notare sono:

  • Funzione e-mail - Imposta le informazioni appropriate come il nome della macchina e l'e-mail dell'amministratore.
  • Soglia consentita: imposta questo parametro su ciò che ritieni appropriato, ho utilizzato 5 perché il limite impostato per gli hard disk "server grade" utilizzati era 10. (Ho trovato la soglia per le unità "consumer grade" per essere alto come 140).
  • Impostare i dispositivi che si desidera monitorare regolando l'enumerazione dei nomi dei dischi nel ciclo "for". Attualmente sono inclusi due dischi (sda e sdb), quindi regolati per la configurazione. È possibile includere tutti i dischi o solo alcuni, se è necessario * escludere un disco per qualche motivo.

* Nella mia configurazione originale il primo disco era un'unità flash, quindi leggere le sue informazioni se possibile non è di grande utilità.

Rendi eseguibile lo script:

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

L'installazione è terminata.

Pianifica lo script da eseguire automaticamente

Vogliamo che lo script venga eseguito automaticamente, quindi creeremo un nuovo processo Cron per esso. Come indicato nella sezione "Come impostare gli avvisi via e-mail su Linux", il risultato è che se lo script incontra un errore, cron ci informerà automaticamente via e-mail non appena ciò accadrà.

Aprire il cron job scheduler:

sudo crontab -e

Aggiungi questo al suo contenuto:

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

Questo imposterà lo script da eseguire ogni mattina alle 7:00.

Tutto il tuo settore ci appartiene:)

Consigliato: