If-Koubou

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

Hard Drive Monitor Script pentru servere fără cap fără fir (Cum să)

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 punctul de a eșua. Nu ar fi frumos ca serverul să te trimită prin e-mail înainte de un astfel de eșec?

Prezentare generală

Programe precum "mdadm" (pentru gestionarea software-ului RAID) și "Palimpsest Disk Utility" (folosit pe LiveCD-ul Ubuntu), 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 o doom în așteptare înainte de a fi prea târziu. Mai mult, cum ai putea să știi 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 sistemului de hard discuri a ajuns la o limită care este în mod deliberat mai mică decât pragul "discul este prost" și trimiteți avertizarea prin e-mail administratorului mașinii.

Condiții și presupuneri

  • Ați instalat deja suport pentru e-mail pentru server folosind ghidul "Cum se instalează e-mailurile pe Linux".
  • Utilizați un sistem bazat pe Debian.
  • Nu utilizați un controler * hardware RAID.
  • Vei vedea ca folosesc VIM ca program de editare, doar pentru ca sunt obisnuit cu asta ... poti folosi orice alt editor care iti doresti.

* 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 ne prezintă acest lucru.

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 ()

echo "la: [email protected]"> $ temp_email_file
ecou "de la: [email protected]" >> $ temp_email_file
echo "Subiect: Monitorul S.M.A.R.T a fost încălcat pragul" >> $ 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 administratorului"

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 numărul de sectoare rău pe care doriți să le trăiți, recomandat 5.

########Motor########
pentru i în sda sdb; # Adăugați sau scade numele de discuri din această listă, după cum este necesar pentru configurarea 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 de prag - Setați acest parametru la ceea ce credeți că este potrivit, am folosit 5, deoarece limita setată pentru unitățile de hard disk pe care le-am folosit a fost 10. (i've găsit pragul pentru unitățile de tip "consumer grade" fi 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 anumit motiv.

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

Asigurați executabil scriptul:

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

Configurarea sa terminat.

Programați ca scriptul să fie rulat automat

Vrem să facem scriptul rulat automat, astfel încât să creăm un nou post Cron pentru el.
După cum se arată în "Cum se instalează Alerte prin email 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 cron programatorul de activități:

sudo crontab -e

Adăugați aceasta 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 ora 7:00.

Întregul dvs. sector aparțin nouă :)