Početna » kako da » Skripta monitora tvrdog diska za bezglave poslužitelje Linuxa

    Skripta monitora tvrdog diska za bezglave poslužitelje Linuxa

    Moderni tvrdi diskovi imaju unutarnji mehanizam nazvan S.M.A.R.T. kroz koje je moguće znati kada tvrdi disk neće uspjeti. Ne bi li bilo lijepo od poslužitelja da Vam pošalje e-poštu prije neuspjeha?

    Pregled

    Programi poput "mdadm" (za softversko upravljanje RAID-om) i "Palimpsest Disk Utility" (koji se koriste na Ubuntu LiveCD-u), koriste informacije S.M.A.R.T kako bi vas obavijestili kada disk želi ili nije uspio. Međutim, na poslužitelju bez glave (bez GUI-a) ne postoji usluga koja će vas obavijestiti o sudbini na čekanju prije nego bude prekasno. Štoviše, kako biste to znali bez ručnog prijavljivanja na poslužitelj?

    Ova skripta, kada se pokreće jednom dnevno s cronom, upozorit će se ako je bilo koji od tvrdih diskova lošeg sektora sustava dostigao granicu koja je namjerno niža od praga "disk je loš" i upozorio je administratora stroja.

    Preduvjeti i pretpostavke

    • Već ste postavili podršku za e-poštu za poslužitelj pomoću vodiča "Kako postaviti e-mail obavijesti na Linuxu".
    • Koristite sustav temeljen na Debianu.
    • Ne koristite * hardverski RAID kontroler.
    • Vidjet ćete da koristim VIM kao program za uređivanje, to je samo zato što sam navikao na to ... možete koristiti bilo koji drugi uređivač koji želite.

    * Zato što je vrlo moguće da hardverski RAID kontroler blokira pristup sustava ovim informacijama.

    Postaviti

    Instalirajte paket "smartmontools" koji čita informacije o S.M.A.R.T s kontrolera tvrdog diska i predaje nam ih.

    sudo aptitude instalira smartmontools

    Izradite skriptu monitora:

    sudo vim /root/smart-monitor.sh

    Neka to bude sadržaj:

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

    echo "Za: [email protected]"> $ temp_email_file
    echo "Od: [email protected]" >> $ temp_email_file
    echo "Predmet: prekoračen prag monitora 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
    jeka "Poslano e-poštom administratoru"

    smartc_func ()

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

    ######## Kraj funkcija ########

    ######## Postavi radni parametar ########
    temp_email_file = / TMP / smart_monitor.txt
    allowed_threshold = 5 #set količinu loših sektora s kojima želite živjeti, preporučujemo 5.

    ########Motor########
    za i u sda sdb; do # Dodajte ili oduzmite nazive diskova s ​​ovog popisa kao prikladne za vaše postavljanje.
    ako [["" smartc_func $ i '"-ge $ allowed_threshold]]; zatim
    echo Slanje e-pošte administratoru
    email_admin_func "Jedan od HD-ova na" 'hostname' ", dosegnuo je gornju graničnu granicu! n Prag je bio postavljen na: $ allowed_threshold, a $ i disk status:" smartc_func $ i '""
    fi
    učinio

    Ključne točke koje treba imati na umu su:

    • Funkcija e-pošte - Postavite odgovarajuće informacije kao što su naziv stroja i e-adresa administratora.
    • Dopušteni prag - Postavite ovaj parametar na ono što smatrate prikladnim, koristio sam 5 jer je ograničenje postavljeno za “poslužiteljske” tvrde diskove koje sam koristio je 10. (pronašao sam prag za “potrošačku klasu”) biti 140.
    • Postavite uređaje koje želite nadzirati podešavanjem brojeva naziva diskova u petlji "za". Trenutno su uključena dva diska (sda i sdb), stoga prilagodite svoje postavke. Možete uključiti sve svoje diskove ili samo neke, ako iz nekog razloga morate isključiti disk.

    * U mom izvornom postava prvi disk je bio bljesak voziti pa čitanje njegove informacije, ako je uopće moguće nije puno koristi.

    Izvršite skriptu:

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

    Postavljanje je završeno.

    Zakažite skriptu za automatsko pokretanje

    Želimo da se skripta pokrene automatski tako da ćemo za nju izraditi novi Cron posao.
    Kao što je navedeno u "Kako postaviti e-mail obavijesti na Linuxu", ishod toga je da ako sama skripta naiđe na pogrešku, cron će nas automatski obavijestiti putem e-pošte čim se to dogodi.

    Otvorite cron raspoređivač poslova:

    sudo crontab -e

    Dodajte ovo u njegov sadržaj:

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

    Ovo će postaviti skriptu za pokretanje svakog jutra u 7 sati ujutro.


    Svi vaši sektori pripadaju nama :)