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?
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.
* Deoarece este foarte posibil ca controlerul hardware RAID să blocheze accesul sistemului la aceste informații.
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:
* î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.
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ă :)