If-Koubou

Hard Drive Monitor Script Headless -palvelimille

Hard Drive Monitor Script Headless -palvelimille (Miten)

Nykyaikaisilla kiintolevyillä on sisäinen mekanismi nimeltä S.M.A.R.T. jonka kautta on mahdollista tietää, milloin kiintolevy on epäonnistunut. Eikö olisi mukavaa, että palvelin lähettää sinulle sähköpostia ennen tällaista epäonnistumista?

Yleiskatsaus

Ohjelmat, kuten "mdadm" (ohjelmiston RAID-hallinta) ja "Palimpsest Disk Utility" (joita käytetään Ubuntu LiveCD -levyllä), käyttävät S.M.A.R.T-tietoja, jotka ilmoittavat, kun levy on epäonnistunut tai epäonnistui. Kuitenkin epäsymmetrisessä palvelimessa (ei graafista käyttöliittymää) ei ole palvelua, joka ilmoittaa sinulle vireillä olevasta tuomiosta ennen kuin on liian myöhäistä. Lisäksi, miten sinä tiedät siitä ilman kirjautumista manuaalisesti palvelimeen?

Tämä komentosarja, kun sitä käytetään kerran päivässä cron-ohjelmalla, ilmoittaa, jos jokin järjestelmän kiintolevyjen huonot sektorit ovat saavuttaneet rajan, joka on tarkoituksella pienempi kuin "levy on huono" kynnysarvo ja lähettää varoituksen koneen ylläpitäjälle.

Edellytykset ja oletukset

  • Olet jo asettanut sähköpostipalvelimen tuen palvelimelle "Sähköpostiviestien määrittäminen Linuxissa" -oppaasta.
  • Käytät Debian-pohjaista järjestelmää.
  • Et käytä * laitteiston RAID-ohjainta.
  • Näet, että käytän VIM: ää editorina, tämä on vain siksi, että olen tottunut siihen ... voit käyttää mitä tahansa muuta editoria, jota haluat.

* Koska on hyvin mahdollista, että laitteiston RAID-ohjain estää järjestelmän pääsyn näihin tietoihin.

Perustaa

Asenna "smartmontools" -paketti, joka lukee S.M.A.R.T-tiedot kiintolevyohjaimesta ja esittelee sen meille.

sudo aptitude asenna smartmontools

Luo näyttökirjoitus:

sudo vim /root/smart-monitor.sh

Tee tämä sisältö:

#! / Bin / bash
######## Sähköposti toiminto ########
email_admin_func ()

echo "Vastaanottaja: [email protected]"> $ temp_email_file
echo "Lähettäjä: [email protected]" >> $ temp_email_file
echo "Aihe: S.M.A.R.T-monitorin kynnys loukkaantunut" >> $ temp_email_file
echo "" >> $ temp_email_file
echo -e $ 1 >> $ temp_email_file
/ usr / sbin / ssmtp -t <$ temp_email_file
echo "Lähettänyt sähköpostin Admin"

smartc_func ()

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

######## Toimintojen loppu ########

######## Aseta työparametri ########
temp_email_file = / tmp / smart_monitor.txt
allowed_threshold = 5 #set vahinkoa kärsivien sektorien määrä, olet valmis elämään, suositellaan 5.

########Moottori########
i varten sda sdb; do # Lisätä tai vähentää levyn nimiä tästä luettelosta sopivaksi asennukselle.
jos [["smartc_func $ i" -ge $ sallittu kynnysarvo]]; sitten
echo Sähköposti järjestelmänvalvojalle
email_admin_func "Yksi" hostname "" HD: stä on saavuttanut yläraja-arvon! nKynnysarvo on asetettu: $ allowed_threshold ja $ i-levyn tila oli: "'smartc_func $ i'" "
fi
tehty

Tärkeitä huomautuksia ovat:

  • Sähköposti-toiminto - Aseta tarvittavat tiedot, kuten koneen nimi ja järjestelmänvalvojan sähköposti.
  • Sallittu kynnysarvo - Aseta tämä parametri mielestäsi sopivaksi. Käytän sitä 5, koska "server grade" kiintolevyille asetettu raja oli 10. (I'v löysi kynnyksen "kuluttaja-luokan" asemille olla jopa 140).
  • Aseta laitteet, jotka haluat tarkkailla, säätämällä levyn nimiä "for" -luettelossa. Tällä hetkellä mukana on kaksi levyä (sda & sdb), joten säädä asetukset. Voit sisällyttää kaikki levyt tai vain jotkut, jos haluat * sulkea levyn jonkin syyn vuoksi.

* Alkuperäisessä asetuksessani ensimmäinen levy oli flash-asema, joten lukemalla sen tietoja jos ei lainkaan ole paljon hyötyä.

Tee käsikirjoitus suoritettavaksi:

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

Asennus on tehty.

Ajoittaa komentosarjan suorittaminen automaattisesti

Haluamme tehdä komentosarjan käynnistyvän automaattisesti, jotta voimme luoda uuden Cron-työn.
Kuten "Sähköpostiviestien määrittäminen Linuxissa" -oppaassa todetaan, tämä on se, että jos skripti itse havaitsee virheen, cron ilmoittaa meille automaattisesti sähköpostilla heti, kun se tapahtuu.

Avaa aikataulun aikataulu:

sudo crontab -e

Lisää tämä sisältöön:

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

Tämä asettaa käsikirjoituksen ajaa joka aamu klo 7.00.

Kaikki sektori kuuluvat meihin :)