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