Pagrindinis » kaip » „Hard Drive Monitor“ scenarijus „Headless Linux“ serveriams

    „Hard Drive Monitor“ scenarijus „Headless Linux“ serveriams

    Šiuolaikiniai kietieji diskai turi vidinį mechanizmą, vadinamą S.M.A.R.T. per kurį galima žinoti, kada kietasis diskas bus sugedęs. Ar ne būtų malonu, kad serveris išsiųstų el. Laišką prieš tokį gedimą?

    Apžvalga

    Tokios programos kaip „mdadm“ (programinės įrangos RAID valdymas) ir „Palimpsest Disk Utility“ (naudojamos „Ubuntu LiveCD“), naudodamos S.M.A.R.T informaciją, kad informuotų jus, kai diskas yra ar nepavyko. Tačiau be serverio (be GUI) nėra jokios paslaugos, kuri informuotų jus apie laukiančią bausmę, kol nebus per vėlu. Be to, kaip jūs apie tai žinotumėte be rankinio prisijungimo prie serverio?

    Šis scenarijus, kai jis paleistas vieną kartą per dieną su cron, įspės, kad kai kurių sistemos kietųjų diskų blogų sektorių skaičius pasiekė ribą, kuri yra sąmoningai mažesnė nei „diskas yra blogas“ slenksčio, ir išsiųskite įspėjimą mašinos administratoriui.

    Būtinos sąlygos ir prielaidos

    • Jūs jau nustatėte el. Pašto palaikymą serveriui naudodami „Kaip nustatyti el. Pašto įspėjimus apie„ Linux “vadovą.
    • Jūs naudojate Debian'o sistemą.
    • Nenaudojate * aparatinės įrangos RAID valdiklio.
    • Pamatysite, kad aš naudosiu VIM kaip redaktoriaus programą, tai tik todėl, kad esu įpratęs tai ... galite naudoti bet kurį kitą redaktorių, kurį norite.

    * Kadangi labai įmanoma, kad aparatūros RAID valdiklis blokuoja sistemos prieigą prie šios informacijos.

    Sąranka

    Įdiekite „smartmontools“ paketą, kuris skaito standžiojo disko valdiklio S.M.A.R.T informaciją ir pateikia ją mums.

    sudo aptitude įdiegia „smartmontools“

    Sukurkite monitoriaus scenarijų:

    sudo vim /root/smart-monitor.sh

    Padarykite tai turiniu:

    #! / bin / bash
    ######## El. Pašto funkcija ########
    email_admin_func ()

    echo "To: [email protected]"> $ temp_email_file
    echo "Nuo: mašinisto [email protected]" >> $ temp_email_file
    echo "Tema: S.M.A.R.T monitoriaus slenkstis pažeistas" >> $ temp_email_file
    echo "" >> $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    echo "išsiųstas el. laiškas administratoriui"

    smartc_func ()

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

    ######## Funkcijų pabaiga ########

    ######## Nustatykite darbo parametrą ########
    temp_email_file = / tmp / smart_monitor.txt
    allow_threshold = 5 # nustatyti blogų sektorių, kuriuos norėtumėte gyventi, kiekį, rekomenduojama 5.

    ######## Variklis ########
    i i sda sdb; do # Įtraukite arba atimkite iš šio sąrašo disko pavadinimus, kurie yra tinkami jūsų sąranka.
    jei [["'smartc_func $ i'" -ge $ allow_threshold]]; tada
    echo Administratoriaus el. pašto siuntimas
    „email_admin_func“ „Vienas iš„ „hostname“ “esančių HDs pasiekė viršutinę ribinę ribą !!! nPrieš ribą nustatė: $ allow_threshold ir $ i disko būsena buvo:„ 'smartc_func $ i' ""
    fi
    padaryta

    Svarbiausios pastabos:

    • El. Pašto funkcija - nustatykite tinkamą informaciją, pvz., Įrenginio pavadinimą ir administratoriaus el. Paštą.
    • Leistina riba - nustatykite šį parametrą, kuris, jūsų manymu, yra tinkamas, aš naudoju 5, nes naudojamas „serverio klasės“ standžiųjų diskų apribojimas, kuris buvo naudojamas 10-ai. būti 140).
    • Nustatykite įrenginius, kuriuos norite stebėti, koreguojant diskų pavadinimų skaičių „už“ kilpoje. Šiuo metu yra du diskai (sda & sdb), todėl koreguokite savo sąranką. Galite įtraukti visus diskus arba tik kai kuriuos, jei dėl kokios nors priežasties turite išjungti diską.

    * mano pradiniame nustatyme pirmasis diskas buvo „flash“ diskas, todėl jo informacija buvo perskaityta, jei ne visai įmanoma.

    Padarykite scenarijų vykdomąjį failą:

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

    Nustatyta.

    Suplanuokite paleistiną scenarijų automatiškai

    Norime, kad scenarijus būtų paleistas automatiškai, kad sukurtume naują Cron darbą.
    Kaip nurodyta „Kaip užmegzti el. Pašto įspėjimus apie„ Linux “, vadovaujamasi tuo, kad, jei pats scenarijus susiduria su klaida, cron automatiškai informuos mus elektroniniu paštu, kai tik tai įvyksta.

    Atidarykite cron užduočių planavimo priemonę:

    sudo crontab -e

    Pridėkite tai savo turiniui:

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

    Tai leis scenarijų paleisti kiekvieną rytą 7 val.


    Visi jūsų sektoriai priklauso mums :)