Съвременните твърди дискове имат вътрешен механизъм, наречен S.M.A.R.T. чрез който е възможно да се знае кога твърд диск ще се провали. Не би ли било хубаво на сървъра да ви изпрати имейл преди такъв провал?
Програми като "mdadm" (за управление на софтуер RAID) и "Palimpsest Disk Utility" (използван в Ubuntu LiveCD), използвайте информацията S.M.A.R.T, за да ви информирам, когато дискът е на път да или не е успял. Въпреки това на сървър без глава (без GUI) няма услуга, която да ви информира за предстоящата смърт, преди да е станало твърде късно. Освен това, как бихте знаели за това, без ръчно да влезете в сървъра?
Този скрипт, когато се изпълнява веднъж дневно с cron, ще предупреди, ако някой от системните твърди дискове следи лошите сектори, е достигнал ограничение, което е съзнателно по-ниско от прага "диск е лош" и изпратите предупреждение до администратора на устройството.
* Тъй като е много възможно хардуерният RAID контролер да блокира достъпа на системата до тази информация.
Инсталирайте пакета "smartmontools", който чете информацията за S.M.A.R.T от контролера на твърдия диск и го представя на нас.
sudo aptitude инсталирате smartmontools
Създайте скрипта на монитора:
sudo vim /root/smart-monitor.sh
Направете това със съдържание:
#! / Хамбар / Баш
######## Функция за имейл ########
email_admin_func ()
echo "до: [email protected]"> $ temp_email_file
echo "От: [email protected]" >> $ temp_email_file
echo "Тема: Проверка на параметъра S.M.A.R.T Threshold нарушен" >> $ temp_email_file
echo "" >> $ temp_email_file
ехо-е $ 1 >> $ temp_email_file
/ usr / sbin / ssmtp -t <$ temp_email_file
ехо "Изпратено имейл до администратора"
smartc_func ()
/ usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s "| cut -d" -f11
######## Край на функциите ########
######## Задайте работен параметър ########
temp_email_file = / TMP / smart_monitor.txt
allow_threshold = 5 # определете размера на лошите сектори, с които желаете да живеете, препоръчвате 5.
######## ######## Engine
за аз в sda sdb; направете # Добавете или извадете имената на дисковете от този списък, както е подходящо за настройката.
ако [["'smartc_func $ i" "-ge $ allowed_threshold]]; тогава
ехо Изпращане на имейл до администратора
mail_admin_func "Един от HD дисковете на" hostname "" достигна горната граница! n Прагът беше зададен на: $ allowed_threshold и състоянието на $ i диска беше: "smartc_func $ i"
Fi
Свършен
Основните точки, които трябва да обърнете внимание са:
* в оригиналната си настройка първият диск беше флаш устройство, така че четенето на информацията, ако изобщо не е възможно, не е от голяма полза.
Направете скрипта изпълним:
sudo chmod + x /root/smart-monitor.sh
Настройката е завършена.
Искаме да направим скрипта автоматично, за да създадем нова работа за него.
Както е посочено в "Как да инсталирате Email Alerts on Linux" ръководството на резултата от това, е, че ако самият скрипт срещне грешка, cron автоматично ще ни информира по имейл, веднага щом се случи.
Отворете график за задания за cron:
sudo crontab -e
Добавете това към съдържанието му:
0 7 * * * /root/smart-monitor.sh> /tmp/last_smart_monitor_run.log
Това ще накара скрипта да се изпълнява всяка сутрин в 7 часа сутринта.
Целият ви сектор принадлежи на нас :)