Nowoczesne dyski twarde mają wewnętrzny mechanizm o nazwie S.M.A.R.T. dzięki któremu można dowiedzieć się, kiedy nastąpi awaria dysku twardego. Czy nie byłoby miło z serwera, aby wysłać e-mail przed takim niepowodzeniem?
Programy takie jak "mdadm" (do zarządzania oprogramowaniem RAID) i "Palimpsest Disk Utility" (używane na Ubuntu LiveCD), wykorzystują informacje S.M.A.R.T, aby poinformować cię o tym, kiedy dysk się nie powiedzie. Jednak na bezgłowym serwerze (bez GUI) nie ma usługi, która poinformuje cię o oczekiwaniu na zagładę, zanim będzie za późno. Co więcej, jak możesz się o tym dowiedzieć bez ręcznego logowania do serwera?
Ten skrypt, uruchamiany raz dziennie z cronem, będzie sygnalizował, czy którykolwiek z sektorów uszkodzonych sektorów dysku twardego osiągnął limit celowo niższy niż próg "dysku jest zły" i wysłał ostrzeżenie do administratora komputera.
* Ponieważ jest bardzo możliwe, że sprzętowy kontroler RAID blokuje dostęp systemu do tych informacji.
Zainstaluj pakiet "smartmontools", który odczytuje informacje S.M.A.R.T z kontrolera dysku twardego i przedstawia go nam.
sudo aptitude install smartmontools
Utwórz skrypt monitora:
sudo vim /root/smart-monitor.sh
Upewnij się, że to treść:
#! / bin / bash
######## Funkcja poczty elektronicznej ########
email_admin_func ()
echo "Do: [email protected]"> $ temp_email_file
echo "From: [email protected]" >> $ temp_email_file
echo "Subject: Monitor S.M.A.R.T Przekroczony próg" >> $ temp_email_file
echo "" >> $ temp_email_file
echo -e $ 1 >> $ temp_email_file
/ usr / sbin / ssmtp -t <$ temp_email_file
echo "Wysłano wiadomość e-mail do administratora"
smartc_func ()
/ usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d" -f11
######## Koniec funkcji ########
######## Ustaw parametr roboczy ########
temp_email_file = / tmp / smart_monitor.txt
allowed_threshold = 5 # ustaw ilość złych sektorów, z którymi chcesz mieszkać, zalecane 5.
########Silnik########
dla i in sda sdb; do # Dodaj lub odejmij nazwy dysków z tej listy, stosownie do ustawień.
jeśli [["smartc_func $ i" "-ge $ allowed_threshold]]; następnie
echo Wysłanie e-maila do administratora
email_admin_func "Jedna z HD na" hostname "", osiągnęła górny limit progowy !!! n Próg został ustawiony na: $ allowed_threshold, a status dysku $ i: "'smartc_func $ i'" "
fi
Gotowe
Kluczowe uwagi to:
* w mojej oryginalnej konfiguracji pierwszy dysk był dyskiem flash, więc czytanie jego informacji, jeśli w ogóle możliwe, nie jest zbyt użyteczne.
Spraw, aby skrypt był wykonywalny:
sudo chmod + x /root/smart-monitor.sh
Konfiguracja została zakończona.
Chcemy, aby skrypt działał automatycznie, dlatego utworzymy dla niego nowe zadanie Cron.
Jak wspomniano w "Jak skonfigurować powiadomienia e-mail w systemie Linux", należy kierować się tym, że jeśli sam skrypt napotka błąd, cron automatycznie poinformuje nas pocztą elektroniczną, jak tylko się to stanie.
Otwórz program do planowania zadań cron:
sudo crontab -e
Dodaj to do treści:
0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_run.log
Spowoduje to ustawienie skryptu uruchamianego codziennie o 7 rano.
Cały twój sektor należy do nas :)