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?
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.
* Koska on hyvin mahdollista, että laitteiston RAID-ohjain estää järjestelmän pääsyn näihin tietoihin.
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:
* 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.
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 :)