Merevlemez-monitor Script fej nélküli Linux-kiszolgálókhoz
A modern merevlemezek belső mechanizmusa S.M.A.R.T. amelyen keresztül tudni lehet, hogy mikor fog merülni a merevlemez. Nem lenne jó a szerver számára, hogy e-mailben küldje el e hiba előtt?
Áttekintés
Olyan programok, mint az „mdadm” (a szoftver RAID kezelése) és a „Palimpsest Disk Utility” (használják az Ubuntu LiveCD-n) az S.M.A.R.T információval tájékoztatják Önt, ha a lemez hamarosan meghibásodik vagy nem sikerült. Azonban egy fejetlen szerveren (nincs GUI) nincs olyan szolgáltatás, amely tájékoztatná Önt a függőben lévő ítéletről, mielőtt túl késő lenne. Továbbá, hogyan tudná róla, anélkül, hogy manuálisan jelentkezne be a szerverbe?
Ez a szkript, amikor naponta egyszer futtatjuk a cron-t, figyelmeztet, ha a rendszer merevlemezei rossz szektorok száma eléri a határértéket, amely szándékosan alacsonyabb, mint a „lemez rossz” küszöbérték, és küldje el a figyelmeztetést a gép adminisztrátorának.
Előfeltételek és feltételezések
- Már beállította az e-mail támogatását a kiszolgálónak az „E-mail figyelmeztetések telepítése Linuxon” útmutató segítségével.
- Debian alapú rendszert használ.
- Nem használ * hardveres RAID vezérlőt.
- Látni fogod, hogy a VIM-et használom szerkesztőprogramként, ez csak azért van, mert megszoktam… használhatsz bármilyen más szerkesztőt, amit szeretnél.
* Mivel nagyon lehetséges, hogy a hardveres RAID-vezérlő blokkolja a rendszer hozzáférését ehhez az információhoz.
Beállít
Telepítse az „smartmontools” csomagot, amely a merevlemez-vezérlőtől olvasja az S.M.A.R.T információt és bemutatja azt.
a sudo aptitude telepíti az okostelefonokat
Készítse el a monitor scriptjét:
sudo vim /root/smart-monitor.sh
Tegye ezt tartalmának:
#! / Bin / bash
######## E-mail funkció ########
email_admin_func ()
echo "To: [email protected]"> $ temp_email_file
echo "From: [email protected]" >> $ temp_email_file
echo "Tárgy: S.M.A.R.T monitor küszöb megsértése" >> $ temp_email_file
echo "" >> $ temp_email_file
echo -e $ 1 >> $ temp_email_file
/ usr / sbin / ssmtp -t < $temp_email_file
visszhang "E-mail küldése az adminisztrátornak"
smartc_func ()
/ usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d" -f11
######## Funkciók vége ########
######## Működési paraméter beállítása ########
temp_email_file = / tmp / smart_monitor.txt
allow_threshold = 5 # a rossz szektorok összegét adja meg, amellyel hajlandó élni, ajánlott 5.
########Motor########
i esetén sda sdb-ben; do # Adja hozzá vagy vonja le a lemez nevét a listából a beállításainak megfelelően.
ha [["'smartc_func $ i'" -ge $ allow_threshold]]; azután
echo E-mail küldése a rendszergazdának
email_admin_func "A" hosztnév "egyik HD-je elérte a felső küszöbértéket! nA küszöbértéket a következőre állította: $ allow_threshold és a $ i lemezállapot:" "smartc_func $ i '" "
fi
Kész
A legfontosabb szempontok:
- E-mail funkció - Állítsa be a megfelelő információkat, például a gép nevét és az adminisztrátori e-mailt.
- Engedélyezett küszöbérték - Állítsa be ezt a paramétert arra az esetre, amit megfelelőnek tartottam, 5-et használtam, mert a „szerver minőségű” merevlemezekre beállított határérték 10 volt. (Megtaláltam a „fogyasztói minőségű” meghajtók küszöbét akár 140).
- Állítsa be a monitorozni kívánt eszközöket a lemeznevek felsorolásának beállításával az „for” hurokba. Jelenleg két lemez (sda & sdb) szerepel, így állítsa be a beállítást. Lehet, hogy az összes lemezt vagy csak néhányat tartalmaz, ha valamilyen okból ki kell zárnia a lemezt.
* az eredeti beállításomban az első lemez flash meghajtó volt, így az információ olvasása, ha egyáltalán nem lehetséges, nem sok hasznos.
A parancsfájl végrehajtható:
sudo chmod + x /root/smart-monitor.sh
A beállítás megtörtént.
Ütemezze be a futtatni kívánt parancsfájlt
Azt szeretnénk, hogy a parancsfájl automatikusan fusson, így létrehozunk egy új Cron munkát.
Amint azt az „E-mail figyelmeztetések telepítése Linuxon” című útmutató ismerteti, az, hogy ha a szkript hibát észlel, a cron automatikusan értesíti minket e-mailben, amint ez megtörténik.
Nyissa meg a cron jobütemezőt:
sudo crontab -e
Adja hozzá a tartalmát:
0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_run.log
Ezzel a szkript minden reggel 7 órakor fog futni.
Minden szektorod hozzánk tartozik :)