Cietā diska monitors Script bezgalīgajiem Linux serveriem
Mūsdienu cietajiem diskiem ir iekšējais mehānisms, ko sauc par S.M.A.R.T. caur kuru ir iespējams uzzināt, kad cietais disks drīz neizdosies. Vai nebūtu jauki, ja serveris nosūtītu jums e-pastu pirms šādas kļūdas?
Pārskats
Programmas, piemēram, “mdadm” (programmatūras RAID pārvaldībai) un “Palimpsest Disk Utility” (lieto Ubuntu LiveCD), izmantojiet informāciju S.M.A.R.T, lai informētu jūs, kad disks gatavojas vai ir neveiksmīgs. Tomēr bez galvas servera (bez GUI) nav pakalpojuma, kas jūs informēs par vēl neizskatīto lietu, pirms nav par vēlu. Turklāt, kā jūs to zinātu, neievietojot manuāli serverī?
Šis skripts, kad tas tiek palaists reizi dienā ar cron, brīdinās, ja kāds no sistēmas cieto disku sliktajiem sektoriem ir sasniedzis ierobežojumu, kas apzināti ir zemāks par “diska ir slikts” slieksnis, un nosūtiet brīdinājumu mašīnas administratoram.
Priekšnosacījumi un pieņēmumi
- Jūs jau esat iestatījis servera e-pasta atbalstu, izmantojot “Kā iestatīt e-pasta brīdinājumus par Linux” rokasgrāmatu.
- Jūs izmantojat Debian balstītu sistēmu.
- Jūs neizmantojat * aparatūras RAID kontrolieri.
- Jūs redzēsiet, ka es izmantoju VIM kā redaktora programmu, tas ir tikai tāpēc, ka esmu pieradis pie tā ... jūs varat izmantot jebkuru citu redaktoru, kuru vēlaties.
* Tā kā ir ļoti iespējams, ka aparatūras RAID kontrolieris bloķē sistēmas piekļuvi šai informācijai.
Uzstādīt
Uzstādiet „smartmontools” paketi, kurā ir redzama cietā diska kontrollera informācija par S.M.A.R.T un tiek parādīta mums.
sudo aptitude instalē smartmontools
Izveidojiet monitora skriptu:
sudo vim /root/smart-monitor.sh
Padariet to par saturu:
#! / bin / bash
######## E-pasta funkcija ########
email_admin_func ()
echo "To: [email protected]"> $ temp_email_file
echo "From: [email protected]" >> $ temp_email_file
echo "Temats: S.M.A.R.T monitora slieksnis pārkāpts" >> $ temp_email_file
echo "" >> $ temp_email_file
echo -e $ 1 >> $ temp_email_file
/ usr / sbin / ssmtp -t < $temp_email_file
atbalss "Nosūtīt e-pastu administratoram"
smartc_func ()
/ usr / sbin / smartctl -A / dev / $ 1 grep Reallocated_Sector_Ct | tr -s "| cut -d" -f11
######## Funkciju beigas ########
######## Iestatiet darba parametru ########
temp_email_file = / tmp / smart_monitor.txt
allow_threshold = 5 # iestatiet slikto sektoru skaitu, kurus vēlaties dzīvot, ieteicams 5.
######## Dzinējs ########
i i sda sdb; do # Pievienojiet vai atņemiet disku nosaukumus no šī saraksta atbilstoši jūsu iestatījumiem.
ja [["'smartc_func $ i'" -ge $ allow_threshold]]; tad
echo Administratora sūtīšana pa e-pastu
email_admin_func "Viens no HD" uz "saimniekdatora nosaukums" ir sasniedzis augšējo sliekšņa robežu !!! nSlimība tika iestatīta uz: $ allow_threshold un $ i diska statuss bija: "" smartc_func $ i '""
fi
izdarīts
Galvenie norādāmie punkti ir:
- E-pasta funkcija - iestatiet atbilstošu informāciju, piemēram, mašīnas nosaukumu un administratora e-pastu.
- Atļautais slieksnis - iestatiet šo parametru tā, ko jūs uzskatāt par piemērotu, esmu izmantojis 5, jo “servera kategorijas” cieto disku ierobežojums, kas tika izmantots, bija 10 gadi. līdz 140).
- Iestatiet ierīces, kuras vēlaties kontrolēt, pielāgojot disku nosaukumu uzskaiti cilpā “for”. Pašlaik ir iekļauti divi diski (sda & sdb), tāpēc pielāgojiet iestatījumus. Jūs varat iekļaut visus jūsu diskus vai tikai dažus, ja jums kāda iemesla dēļ ir jāizslēdz disks.
* manā sākotnējā iestatījumā pirmais disks bija zibatmiņas disks, tāpēc tās informācijas lasīšana, ja vien iespējams, nav ļoti noderīga.
Veiciet skripta izpildi:
sudo chmod + x /root/smart-monitor.sh
Iestatīšana ir veikta.
Plānojiet palaist skriptu automātiski
Mēs vēlamies, lai skripts darbotos automātiski, lai mēs tam izveidotu jaunu Cron darbu.
Kā norādīts „Kā iestatīt e-pasta brīdinājumus par Linux”, jūs varat to izdarīt, ja skripts pats sastopas ar kļūdu, cron automātiski paziņos mums pa e-pastu, tiklīdz tas notiks.
Atveriet cron darba plānotāju:
sudo crontab -e
Pievienojiet to savam saturam:
0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_run.log
Tas iestatīs skriptu katru rītu 7:00.
Visas jūsu nozares pieder pie mums :)