If-Koubou

Skeniranje monitora tvrdog diska za glavne Linux poslužitelje

Skeniranje monitora tvrdog diska za glavne Linux poslužitelje (Kako da)

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

Pregled

Programi poput "mdadm" (za upravljanje softverom RAID) i "Palimpsest Disk Utility" (korišteni na Ubuntu LiveCD-u), koriste informacije S.M.A.R.T kako bi vas obavijestili kada je disk sprema ili nije uspio. Međutim, na poslužitelju bez glave (bez grafičkog sučelja) ne postoji servis koji će vas obavijestiti o čekanju dok je 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 neki od loših sektora hard diskova sustava dosegnuo granicu koja je namjerno niža od praga "disk je loš" i pošalje upozorenje administratoru stroja.

Preduvjeti i pretpostavke

  • Već ste podesili podršku e-pošte poslužitelju pomoću vodiča "Kako postaviti e-poštu upozorenja na Linuxu".
  • Upotrebljavate sustav Debian.
  • Ne upotrebljavate * hardverski RAID kontroler.
  • Vidjet ćete da koristim VIM kao editor program, to je samo zato što sam naviknut na to ... možete koristiti bilo koji drugi urednik koji želite.

* Budući da je vrlo moguće da hardverski RAID kontroler blokira pristup sustavu ovim informacijama.

Postaviti

Instalirajte paket "smartmontools" koji čita podatke S.M.A.R.T s kontrolera tvrdog diska i prikazuje nam ga.

sudo aptitude instalirajte smartmontools

Stvorite skriptu monitora:

sudo vim /root/smart-monitor.sh

Učinite to sadržajem:

#! / Bin / bash
######## E-mail funkcija ########
email_admin_func ()

echo "Za: [email protected]"> $ temp_email_file
echo "Od: [email protected]" >> $ temp_email_file
echo "Predmet: S.M.A.R.T monitor Prag prekršio" >> $ temp_email_file
echo "" >> $ temp_email_file
echo -e $ 1 >> $ temp_email_file
/ usr / sbin / ssmtp -t <$ temp_email_file
echo "Poslao je e-mail administratoru"

smartc_func ()

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

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

######## Postavite radni parametar ########
temp_email_file = / TMP / smart_monitor.txt
allowed_threshold = 5 #set količina loših sektora s kojima ste spremni živjeti, preporučeno 5.

########Motor########
za i u sda sdb; # Dodajte ili oduzmite nazive diska s tog popisa kao što je prikladno za postavljanje.
ako [["'smartc_func $ i'" -ge $ allowed_threshold]]; zatim
Pošalji e-poštu administratoru
email_admin_func "Jedan od HD na" "nazivu hosta" dosegnuo je gornju graničnu vrijednost! nPrag je bio postavljen na: $ allowed_threshold i status $ i disk je bio: "'smartc_func $ i'" "
fi
učinio

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

  • Funkcija e-pošte - Postavite odgovarajuće informacije poput naziva računala i administratorske e-pošte.
  • Dopušteni prag - postavite ovaj parametar na ono što smatrate odgovarajućim, koristio sam 5 jer je ograničenje postavljeno za tvrde diskove "poslužiteljske kvalitete" bilo 10 (pronađeno je prag za pogone "potrošačke ocjene" biti jednako kao 140).
  • Postavite uređaje koje želite pratiti podešavanjem popisivanja naziva diska u petlji "za". Trenutno su uključena dva diska (sda & sdb), pa se prilagodite postavkama. Možete uključiti sve svoje diskove ili samo neke, ako trebate * izuzeti disk iz nekog razloga.

* u mojem izvornom postavu prvi disk bio je bljesak voziti tako da čitajući svoje podatke ako je to sve moguće nije puno koristi.

Napravite izvršnu skriptu:

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

Postava je gotova.

Zakazati skriptu da se pokrene automatski

Želimo napraviti skriptu pokrenuti automatski tako da ćemo stvoriti novi Cron posao za to.
Kao što je navedeno u "Kako postaviti upozorenja e-pošte na Linuxu", upućivanje na to je da ako skripta sama dođe do pogreške, cron će nas automatski obavijestiti putem e-pošte čim se to dogodi.

Otvorite vremenski planer za posao:

sudo crontab-e

Dodajte to svom sadržaju:

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

Ovo će postaviti skriptu da bude pokrenuto svakog jutra u 7:00.

Svi vaši sektori pripadaju nama :)