Pagina principala » HOWTO » Hard Drive Monitor Script pentru servere Linux fără cap

    Hard Drive Monitor Script pentru servere Linux fără cap

    Unitățile moderne de hard au un mecanism intern numit S.M.A.R.T. prin care este posibil să știți când un hard disk este pe cale să eșueze. Nu ar fi frumos ca serverul să vă trimită prin e-mail înainte de un astfel de eșec?

    Prezentare generală

    Programe precum "mdadm" (pentru managementul software-ului RAID) și "Palimpsest Disk Utility" (folosit pe Ubuntu LiveCD), utilizați informațiile S.M.A.R.T pentru a vă informa când discul este aproape sau a eșuat. Cu toate acestea, pe un server fără cap (fără interfață grafică) nu există niciun serviciu care să vă informeze despre doom în așteptare înainte de a fi prea târziu. Mai mult, cum ai fi știut despre asta fără să te autentifici manual pe server?

    Acest script, atunci când se execută o dată pe zi cu cron, va avertiza dacă un număr de sectoare grele ale unităților de hard disk a ajuns la o limită care este în mod deliberat mai mică decât pragul "discul este prost" și trimite avertizarea prin e-mail către administratorul mașinii.

    Condiții și presupuneri

    • Ați instalat deja suport pentru e-mail pentru server utilizând ghidul "Cum se instalează e-mailurile pe Linux".
    • Utilizați un sistem bazat pe Debian.
    • Nu utilizați un controler * hardware RAID.
    • Mă veți vedea folosind VIM ca program de editare, doar pentru că eu sunt obișnuit cu asta ... puteți folosi orice alt editor pe care doriți.

    * Deoarece este foarte posibil ca controlerul hardware RAID să blocheze accesul sistemului la aceste informații.

    Înființat

    Instalați pachetul "smartmontools" care citește informațiile despre S.M.A.R.T de la controlerul unității de hard disk și îl prezintă.

    sudo aptitude instalează smartmontools

    Creați scriptul monitorului:

    sudo vim /root/smart-monitor.sh

    Asigurați-vă că este conținut:

    #! / Bin / bash
    ######## Funcția de e-mail ########
    email_admin_func ()

    ecou "la: [email protected]"> $ temp_email_file
    ecou "de la: [email protected]" >> $ temp_email_file
    echo "Subiect: Monitorul de monitorizare S.M.A.R.T a fost încălcat" >> $ temp_email_file
    echo "" >> $ temp_email_file
    echo -e $ 1 >> $ temp_email_file
    / usr / sbin / ssmtp -t < $temp_email_file
    ecou "Trimite un e-mail la Admin"

    smartc_func ()

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

    ######## Sfârșitul funcțiilor ########

    ######## Setați parametrul de lucru ########
    temp_email_file = / tmp / smart_monitor.txt
    allowed_threshold = 5 # setați cantitatea de sectoare rău pe care doriți să o trăiți, recomandată 5.

    ########Motor########
    pentru i în sda sdb; # Adăugați sau scade numele de discuri din această listă, după caz, pentru configurația dvs..
    dacă [["'smartc_func $ i" "-ge $ allowed_threshold]]; atunci
    ecou Trimiteți prin e-mail administratorul
    mail_admin_func "Unul dintre HD-urile pe" hostname "", a atins limita superioară! n Pragul a fost setat la: $ allowed_threshold și starea discului $ i a fost: "'smartc_func $ i'
    Fi
    Terminat

    Principalele puncte de reținut sunt:

    • Funcția E-mail - Stabiliți informațiile corespunzătoare cum ar fi numele mașinii și e-mailul de administrator.
    • Permis prag - Setați acest parametru la ceea ce considerați că este potrivit, am folosit 5, deoarece limita setată pentru hard disk-ul pe care le folosesc a fost 10. (am găsit pragul pentru driverele "consumer grade" să fie la fel de mare ca 140).
    • Setați dispozitivele pe care doriți să le monitorizați ajustând enumerarea numelor de discuri în bucla "pentru". În prezent sunt incluse două discuri (sda & sdb), deci ajustați configurația. Puteți include toate discurile sau doar câteva, dacă aveți nevoie să excludeți un disc dintr-un motiv oarecare.

    * în configurația inițială primul disc a fost o unitate flash, astfel că citirea informațiilor sale, dacă este posibil, nu este de mult folos.

    Asigurați executabil scriptul:

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

    Configurarea sa terminat.

    Programați ca scriptul să fie rulat automat

    Vrem ca scriptul să fie rulat automat, astfel încât vom crea un nou post Cron pentru el.
    După cum se arată în "Cum se instalează Alerte prin e-mail pe Linux" ghidul de a face acest lucru, este că în cazul în care script-ul în sine întâmpină o eroare, cron ne va informa automat prin e-mail, de îndată ce se întâmplă.

    Deschideți planificatorul de activități cron:

    sudo crontab -e

    Adăugați-le la conținutul său:

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

    Aceasta va seta scriptul să fie difuzat în fiecare dimineață la 7AM.


    Tot sectorul tău aparțin nouă :)