Kotisivu » miten » Kiintolevyn monitorin komentosarja Headless Linux -palvelimille

    Kiintolevyn monitorin komentosarja Headless Linux -palvelimille

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

    Yleiskatsaus

    Ohjelmat, kuten "mdadm" (ohjelmiston RAID-hallinta) ja "Palimpsest Disk Utility" (joita käytetään Ubuntu LiveCD: ssä), käyttävät S.M.A.R.T-informaatiota ilmoittamaan, kun levy on aikeissa tai on epäonnistunut. Päättömässä palvelimessa (ei GUI: ssa) ei kuitenkaan ole palvelua, joka ilmoittaa sinulle odottavasta doomista ennen kuin on liian myöhäistä. Lisäksi, miten tiedätte siitä ilman kirjautumista manuaalisesti palvelimeen?

    Tämä skripti, joka suoritetaan kerran päivässä cronin kanssa, hälyttää, jos jokin järjestelmän kiintolevyjen huonoista aloista laskee rajalle, joka on tarkoituksellisesti pienempi kuin "levy on huono" kynnys, ja lähetä varoitus koneen järjestelmänvalvojalle.

    Edellytykset ja oletukset

    • Olet jo määrittänyt palvelimen sähköpostitukea käyttämällä "Kuinka määrität sähköpostihälytykset Linuxissa" -oppaan.
    • Käytät Debian-pohjaista järjestelmää.
    • Et käytä * laitteiston RAID-ohjainta.
    • Näet minut käyttävän VIM: ää editoriohjelmana, 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 kiintolevyn ohjaimen S.M.A.R.T-tiedot ja esittää sen meille.

    sudo aptitude asentaa smartmontools

    Luo näytön komentosarja:

    sudo vim /root/smart-monitor.sh

    Tee tämä sisällöstä:

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

    echo "Vastaanottaja: [email protected]"> $ temp_email_file
    echo "From: [email protected]" >> $ temp_email_file
    echo "Aihe: S.M.A.R.T -näyttökynnys rikottu" >> $ temp_email_file
    echo "" >> $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    echo "Lähetetty sähköpostiviesti hallinnolle"

    smartc_func ()

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

    ######## Toimintojen päättyminen ########

    ######## Aseta työparametri ########
    temp_email_file = / tmp / smart_monitor.txt
    allow_threshold = 5 # asettaa huonon sektorin määrän, jonka olet valmis elämään, suositeltava 5.

    ########Moottori########
    i: lle sda ​​sdb: ssä; do # Lisää tai vähennä levyn nimiä tästä luettelosta asennuksen mukaan.
    jos [["'smartc_func $ i'" -ge $ allow_threshold]]; sitten
    echo Järjestelmänvalvojan lähettäminen sähköpostitse
    email_admin_func "Yksi" isäntänimen "" HD: istä "on saavuttanut ylemmän kynnysrajan !!! nKynnys on asetettu: $ lubatud_kynnys ja $ i -levyn tila oli:" "smartc_func $ i '" "
    fi
    tehty

    Tärkeimmät huomioitavat kohdat ovat:

    • Sähköpostitoiminto - Aseta tarvittavat tiedot, kuten koneen nimi ja järjestelmänvalvojan sähköposti.
    • Sallittu kynnysarvo - Aseta tämä parametri siihen, mitä sinusta tuntuu sopivalta, olen käyttänyt 5: tä, koska "palvelinluokan" kiintolevyille asetettua rajaa käytettiin 10: ssä. olla jopa 140).
    • Määritä valvottavat laitteet säätämällä levynimien luetteloa "for" -silmukassa. Tällä hetkellä mukana on kaksi levyä (sda & sdb), joten säädä asetukset. Saatat sisältää kaikki levyt tai vain jotkin, jos sinun täytyy * sulkea levyn jostain syystä.

    * alkuperäisessä asetuksessani ensimmäinen levy oli flash-asema, joten sen tietoja lukiessa, jos ollenkaan, ei ole paljon hyötyä.

    Tee komentosarja suoritettavaksi:

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

    Asennus on tehty.

    Ajastetaan ajettava skripti automaattisesti

    Haluamme tehdä komentosarjan automaattisesti, jotta luomme sille uuden Cron-työn.
    Kuten "Sähköpostihälytysten määrittäminen Linuxissa" -oppaassa todetaan, tämä on se, että jos skripti itse havaitsee virheen, cron ilmoittaa meille automaattisesti sähköpostitse heti, kun se tapahtuu.

    Avaa cron-työaikataulu:

    sudo crontab -e

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

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

    Tämä asettaa komentosarjan joka aamu kello 7.00.


    Kaikki sektorisi kuuluvat meille :)