Koduleht » kuidas » Kõvaketta monitori skript peatu Linuxi serveritele

    Kõvaketta monitori skript peatu Linuxi serveritele

    Kaasaegsetel kõvakettadel on sisemehhanism, mida nimetatakse S.M.A.R.T. mille kaudu on võimalik teada saada, millal kõvaketas hakkab nurjuma. Kas serveril ei oleks tore e-maili saata enne sellist viga?

    Ülevaade

    Sellised programmid nagu „mdadm” (tarkvara RAID haldamiseks) ja “Palimpsest Disk Utility” (mida kasutatakse Ubuntu LiveCD-s), kasutavad S.M.A.R.T teavet, et teavitada teid sellest, kui ketas on või on ebaõnnestunud. Peatu serveril (ilma GUI-l) pole teenust, mis teavitaks teid ootel olevast hukatusest enne, kui see on liiga hilja. Lisaks sellele, kuidas sa sellest teadaksid ilma serveriga käsitsi sisse logimata?

    See skript, mis käivitatakse kord päevas koos croniga, hoiatab, kui mõni süsteemi kõvakettade halbade sektorite arv on jõudnud piirini, mis on tahtlikult madalam, kui “ketas on halb” lävi ja saatke hoiatus masina administraatorile.

    Eeltingimused ja eeldused

    • Olete juba seadistanud serveri e-posti tugi, kasutades „Kuidas häälestada e-posti teateid Linuxis”.
    • Te kasutate Debianil põhinevat süsteemi.
    • Te ei kasuta * riistvara RAID-kontrollerit.
    • Näete, et kasutan redaktoriprogrammina VIM-i, see on lihtsalt sellepärast, et olen sellega harjunud ... võite kasutada mis tahes muud toimetajat, mida soovite.

    * Kuna on väga võimalik, et riistvara RAID-kontroller blokeerib süsteemi juurdepääsu sellele teabele.

    Seadistamine

    Paigaldage „smartmontools” pakett, mis loeb kõvaketta kontrolleri S.M.A.R.T informatsiooni ja esitab selle meile.

    sudo aptitude installib nutitelefonid

    Looge monitori skript:

    sudo vim /root/smart-monitor.sh

    Tee sellest sisu:

    #! / bin / bash
    ######## E-posti funktsioon ########
    email_admin_func ()

    echo "To: [email protected]"> $ temp_email_file
    echo "From: [email protected]" >> $ temp_email_file
    echo "Teema: S.M.A.R.T monitori lävi rikutud" >> $ temp_email_file
    echo "" >> $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    echo "E-kirja saatmine administraatorile"

    smartc_func ()

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

    ######## Funktsioonide lõpp ########

    ######## Määra tööparameeter ########
    temp_email_file = / tmp / smart_monitor.txt
    allow_threshold = 5 # seadistage halbade sektorite arv, mida soovid elada, soovitatav 5.

    ######## Mootor ########
    i jaoks sda sdb; do # Lisa loendist ketta nimesid või lahuta neid vastavalt oma seadistusele.
    kui [["'smartc_func $ i'" -ge $ allow_threshold]]; siis
    echo Administraatori saatmine e-postiga
    email_admin_func "Üks" "hosti" hostinimi ", on jõudnud ülemise lävepiirini !!! nKünnis oli seatud: $ allow_threshold ja $ i ketta olek oli:" 'smartc_func $ i' ""
    fi
    tehtud

    Peamisteks märkusteks on:

    • E-posti funktsioon - määrake asjakohane teave, nagu masina nimi ja administraatori e-post.
    • Lubatud lävi - seadke see parameeter sellele, mida tunned sobivaks, olen kasutanud 5, sest kasutasin “serveri kvaliteediklassi” kõvakettale seatud piirväärtust 10. (ma leidsin künnise „tarbija klassi“ draividele olema 140).
    • Seadistage seadmeid, mida soovite jälgida, seadistades ketasnimede loendi "for" silmusele. Praegu on lisatud kaks plaati (sda & sdb), nii et kohandage oma seadistusi. Võite lisada kõik oma kettad või vaid mõned, kui teil on vaja mingil põhjusel ketast välja jätta.

    * minu algses seadistuses oli esimene ketas mälupulk, nii et selle teabe lugemine ei ole üldse võimalik.

    Tee skript käivitatavaks:

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

    Seadistus on tehtud.

    Planeerige käivitatav skript automaatselt

    Me tahame, et skript käivituks automaatselt, et luua sellele uus Croni töö.
    Nagu öeldud “Kuidas häälestada e-posti teateid Linuxis”, juhib see seda, et kui skript ise tekib veaga, teavitab cron meid e-posti teel kohe, kui see juhtub.

    Avage croni töö planeerija:

    sudo crontab -e

    Lisage see oma sisule:

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

    See seab skripti käivitamiseks igal hommikul kell 7:00.


    Kogu teie sektor kuulub meile :)