Domača » kako » Trdi disk Monitor Script za brezglavo strežnike Linux

    Trdi disk Monitor Script za brezglavo strežnike Linux

    Sodobni trdi diski imajo notranji mehanizem, imenovan S.M.A.R.T. preko katerih je mogoče vedeti, kdaj bo trdi disk kmalu propadel. Ali ne bi bilo lepo, da bi vas strežnik e-pošti pred takšno napako?

    Pregled

    Programi, kot sta »mdadm« (za programsko upravljanje RAID) in »Palimpsest Disk Utility« (ki se uporablja na Ubuntu LiveCD), uporabijo informacije S.M.A.R.T, da vas obvestijo, kdaj je disk na poti ali je neuspešen. Na strežniku brez glave (brez grafičnega uporabniškega vmesnika) pa ne obstaja nobena storitev, ki vas bo obvestila o neuspehu, preden bo prepozno. Poleg tega, kako bi vedel za to brez ročnega prijavljanja v strežnik?

    Ta skript, ko teče enkrat na dan s cron, bo opozoril, če je katera od slabih sektorjev trdega diska v sistemu dosegla mejo, ki je namerno nižja od praga »disk je slab«, in opozorilo poslal administratorju računalnika.

    Predpogoji in predpostavke

    • Podporo za e-pošto za strežnik ste že nastavili z vodnikom »Kako nastaviti e-poštna opozorila za Linux«.
    • Uporabljate sistem, ki temelji na Debianu.
    • Ne uporabljate * strojnega RAID krmilnika.
    • Videli boste, da uporabljam VIM kot urejevalni program, to je samo zato, ker sem navajen… lahko uporabite kateri koli drug urejevalnik, ki ga želite.

    * Ker je zelo verjetno, da strojni RAID krmilnik blokira dostop sistema do teh informacij.

    Nastaviti

    Namestite paket "smartmontools", ki od krmilnika trdega diska prebere informacije S.M.A.R.T in nam jih predstavi.

    sudo aptitude namesti smartmontools

    Ustvarite skript monitorja:

    sudo vim /root/smart-monitor.sh

    Naj bo to vsebina:

    #! / bin / bash
    ######## Funkcija e-pošte ########
    email_admin_func ()

    echo "Za: [email protected]"> $ temp_email_file
    echo "Od: [email protected]" >> $ temp_email_file
    echo "Zadeva: Spremljava praga S.M.A.R.T" >> $ temp_email_file
    echo "" >> $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    odmev "Poslano e-poštno sporočilo administratorju"

    smartc_func ()

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

    ######## Konec funkcij ########

    ######## Nastavi delovni parameter ########
    temp_email_file = / tmp / smart_monitor.txt
    allowed_threshold = 5 #set količino slabih sektorjev, s katerimi želite živeti, priporočamo 5.

    ######## Engine ########
    za i in sda sdb; do # Dodajte ali odštejte imena diskov s tega seznama, kot je primerno za vašo nastavitev.
    če [["" smartc_func $ i '"-ge $ allowed_threshold]]; potem
    echo Pošiljanje e-pošte administratorju
    email_admin_func "Eden od HD-jev na" "hostname", je dosegel zgornjo mejno vrednost! n Prag je bil nastavljen na: $ allowed_threshold in $ i disk status: "smartc_func $ i '" "
    fi
    Končano

    Najpomembnejše točke, ki jih je treba upoštevati:

    • Funkcija E-pošta - Nastavite ustrezne informacije, kot so ime naprave in e-poštni naslov skrbnika.
    • Dovoljeni prag - Nastavite ta parameter na tisto, kar se vam zdi primerno, uporabil sem 5, ker je omejitev, ki je bila uporabljena za »strežniške« trde diske, ki so jih uporabljali, 10 (našel sem prag za »potrošniško oceno«) višja kot 140).
    • Nastavite naprave, ki jih želite nadzirati, tako da prilagodite oštevilčenje imen diskov v zanki "za". Trenutno sta vključena dva diska (sda & sdb), zato prilagodite nastavitve. Vključite lahko vse vaše diske ali samo nekatere, če morate disk iz kakršnega koli razloga izključiti.

    * V moji prvotni namestitvi je bil prvi disk flash pogon, zato branje njegovih informacij, če je sploh mogoče, ni v veliko korist.

    Naredite skript izvršljiv:

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

    Nastavitev je končana.

    Načrtujte skript, ki se bo samodejno zagnal

    Želimo, da bi se skript zagnal samodejno, tako da bomo za to ustvarili novo Cronovo delo.
    Kot je navedeno v priročniku »Kako nastaviti e-poštna opozorila v Linuxu«, je rezultat tega, da v primeru, da pride do napake, nas cron samodejno obvesti po e-pošti takoj, ko se to zgodi..

    Odprite načrtovalec opravil cron:

    sudo crontab -e

    Dodajte to vsebini:

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

    To bo nastavilo, da se bo scenarij izvajal vsako jutro ob 7. uri.


    Ves vaš sektor pripada nam :)