"Hard Drive Monitor" scenarijus be galvų Linux serverių

Turinys:

"Hard Drive Monitor" scenarijus be galvų Linux serverių
"Hard Drive Monitor" scenarijus be galvų Linux serverių

Video: "Hard Drive Monitor" scenarijus be galvų Linux serverių

Video:
Video: Turn any image into ASCII art! (Easy Python PIL Tutorial) - YouTube 2024, Gegužė
Anonim
Šiuolaikiniai kietieji diskai turi vidinį mechanizmą, vadinamą S.M.A.R.T. per kurią galima sužinoti, kada kietasis diskas nesiseka. Ar nebūtų malonu, kad serveris išsiųs jums el. Laišką prieš tokią nesėkmę?
Šiuolaikiniai kietieji diskai turi vidinį mechanizmą, vadinamą S.M.A.R.T. per kurią galima sužinoti, kada kietasis diskas nesiseka. Ar nebūtų malonu, kad serveris išsiųs jums el. Laišką prieš tokią nesėkmę?

Apžvalga

Programos, pvz., "Mdadm" (programinės įrangos RAID valdymui) ir "Palimpsest Disk Utility" (naudojamos "Ubuntu LiveCD"), naudoja informaciją S.M.A.R.T, kad informuotų jus apie tai, ar diskas yra ar jo nepavyko. Tačiau begalviu serveriu (be GUI) nėra jokios paslaugos, kuri informuotų jus apie laukiamą bausmę prieš per vėlai. Be to, kaip jūs žinote apie tai be rankinio prisijungimo prie serverio?

Šis scenarijus, kai jis paleidžiamas vieną kartą per dieną su cron'u, įspės, ar bet kokia sistemos standžiųjų diskų klaidinga sritis skaičius pasiekė ribą, kuri sąmoningai mažesnė, nei "disko bloga" slenkstis, ir el. Paštu įspėja mašinos administratorių.

Būtinos sąlygos ir prielaidos

  • Jūs jau nustatėte el. Pašto palaikymą serveryje, naudodamiesi vadove "Kaip nustatyti el. Pašto įspėjimus" Linux ".
  • Jūs naudojate Debian'o sistemą.
  • Jūs nenaudojate * aparatinės RAID valdiklio.
  • Jūs pamatysite, kad man naudojama VIM kaip redaktoriaus programa, tai tik todėl, kad aš jam būdingas … galite naudoti bet kurį kitą norimą redaktorių.

* Kadangi labai įmanoma, kad aparatinės įrangos RAID valdiklis blokuoja sistemos prieigą prie šios informacijos.

Sąranka

Įdiekite "smartmontools" paketą, kuriame iš standžiojo disko valdiklio nuskaitoma informacija apie S.M.A.R.T ir pateikiama mums.

sudo aptitude install smartmontools

Sukurkite monitoriaus scenarijų:

sudo vim /root/smart-monitor.sh

Padaryti šį turinį:

#!/bin/bash ########Email function######## email_admin_func() { echo 'To: [email protected]' > $temp_email_file echo 'From: [email protected]' >> $temp_email_file echo 'Subject: S.M.A.R.T monitor Threshold breached' >> $temp_email_file echo '' >> $temp_email_file echo -e $1 >> $temp_email_file /usr/sbin/ssmtp -t < $temp_email_file echo 'Sent an Email to the Admin' }

smartc_func() { /usr/sbin/smartctl -A /dev/$1 | grep Reallocated_Sector_Ct |tr -s ' '|cut -d' ' -f11 }

########End of Functions########

########Set working parameter######## temp_email_file=/tmp/smart_monitor.txt allowed_threshold=5 #set the amount of bad sectors your willing to live with, recommended 5.

########Engine######## for i in sda sdb; do # Add or subtract disk names from this list as appropriate for your setup. if [ '`smartc_func $i`' -ge $allowed_threshold ]; then echo Emailing the Administrator email_admin_func 'One of the HDs on '`hostname`', has reached the upper threshold limit!!! nThe threshold was set to:$allowed_threshold and the $i disk status was: '`smartc_func $i`'' fi done

Pagrindiniai dalykai, į kuriuos reikia atkreipti dėmesį:

  • El. Pašto funkcija - Nustatykite atitinkamą informaciją, pvz., Mašinisto pavadinimą ir administratoriaus el. Laišką.
  • Leistina riba. Nustatykite šį parametrą, kad manote, kad yra tinkamas, aš naudoju 5, nes naudojamas "serverio klasės" kietųjų diskų, naudojamų "i'v", nustatytas limitas buvo 10. ("I've found the threshold for" consumer grade "drives to būti aukščiau kaip 140).
  • Nustatykite įrenginius, kuriuos norite stebėti, sureguliuodami diskų pavadinimų skaičių "for" kilpoje. Šiuo metu yra du diskai (sda & sdb), todėl pritaikykite savo sąranką. Galite įtraukti visus savo diskus arba tik kai kuriuos, jei jums reikia * išskirti diską dėl kokios nors priežasties.

* Mano pradiniame diegime pirmasis diskas buvo "flash" įrenginys, todėl skaitydamas jo informaciją, jei viskas įmanoma, nėra daug naudos.

Padarykite vykdomąjį scenarijų:

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

Sąranka baigta.

Suplanuokite scenarijų paleisti automatiškai

Mes norime, kad scenarijus būtų paleistas automatiškai, todėl sukursime naują Cron'o darbą. Kaip nurodyta "Kaip nustatyti el. Pašto įspėjimus" "Linux", nurodykite, kaip tai padaryti, tai, kad jei pats scenarijus patirs klaidą, cron automatiškai informuos mus el. Paštu, kai tik tai įvyks.

Atidarykite "cron" darbo planavimo įrankį:

sudo crontab -e

Pridėti į savo turinį:

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

Tai nustatys scenarijų, kuris paleidžiamas kiekvieną rytą 7 val.

Visas jūsų sektorius priklauso mums:)

Rekomenduojamas: