Ülevaade
Programmid nagu "mdadm" (tarkvara RAID-halduse jaoks) ja "Palimpsest Disk Utility" (kasutatakse Ubuntu LiveCD-is) kasutavad S.M.A.R.T teavet, et teavitada teid sellest, kui ketas on ebaõnnestunud või ebaõnnestunud. Kuid pealetungivas serveris (GUI puudub) ei ole teenust, mis teavitaks teid ootel olevast karistusest enne, kui on liiga hilja. Veelgi enam, kuidas te teate seda ilma serverisse käsitsi sisselogimisel?
See skript, kui käivitada üks kord päevas croniga, hoiatab, kui mõni süsteemi kõvaketaste halbade sektorite arv on jõudnud piirini, mis on tahtlikult madalam, kui "ketas on halb" künnise, ja saadab masinale administraatorile hoiatus.
Eeldused ja eeldused
- Sa juba seadistasid serveri e-posti tugi, kasutades käsku "Kuidas installida e-posti märguandeid Linuxis".
- Kasutate Debiani põhinevat süsteemi.
- Sa ei kasuta * riistvara RAID-kontrollerit.
- Näete, et kasutajanimekirja kasutatakse VIM-i, see on lihtsalt sellepärast, et olen sellega harjunud … võite kasutada mis tahes muud toimetajat, mida soovite.
* Kuna on väga võimalik, et riistvara RAID-kontroller blokeerib süsteemi juurdepääsu sellele teabele.
Seadistamine
Paigaldage "smartmontools" pakett, mis salvestab kõvakettale kontrollerist S.M.A.R.T teabe ja esitab selle meile.
sudo aptitude install smartmontools
Loo monitori skript:
sudo vim /root/smart-monitor.sh
Tee see selle sisu:
#!/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
Peamised tähelepanekud on:
- E-posti funktsioon - määrake sobivad andmed nagu masina nimi ja administraatori e-posti aadress.
- Lubatud künnis. Seadke see parameeter teile sobivaks, olen kasutanud 5, kuna kasutatavale "serveri klassi" kõvakettale määratud limiit oli 10. (I'v leitud künnise "tarbijariski" ajamid olema nii kõrge kui 140).
- Määrake seadmed, mida soovite jälgida, kohandades ketaste nimede loendit silmas "jaoks". Praegu on kaasatud kaks kettale (sda & sdb), nii et kohandage oma seadistusi. Võite sisaldada kõiki oma kettaid või lihtsalt mõnda muud, kui peate * mingil põhjusel ketta välistama.
* mu algse seadistuse korral oli esimene ketas välkmälu, nii et seda teavet lugedes ei kasutataks palju.
Tehke skripti käivitatav fail:
sudo chmod +x /root/smart-monitor.sh
Seadistamine on lõpetatud.
Schedule automaatselt käivitatav skript
Tahame skripti automaatselt käivitada, nii et me loome selle jaoks uue Croni töö. Nagu kirjeldatud "Kuidas e-posti märguandeid Linuxis seadistada", juhindub selle tulemuseks, et juhul, kui skript ise tõstatab, teavitab cron meid automaatselt e-posti teel niipea, kui see juhtub.
Avage cron töö planeerija:
sudo crontab -e
Lisage see selle sisu juurde:
0 7 * * * /root/smart-monitor.sh > /tmp/last_smart_monitor_run.log
See määrab skripti, mis käivitatakse igal hommikul kella 7 hommikul.
Kogu teie sektor kuulub meile:)