Скрипт монитора жесткого диска для безголовых серверов Linux

Jan 25, 2025
Обслуживание и оптимизация

Современные жесткие диски имеют внутренний механизм, называемый S.M.A.R.T. с помощью которого можно узнать, когда жесткий диск вот-вот выйдет из строя. Разве не было бы неплохо, если бы сервер отправил вам электронное письмо до такой неудачи?

Обзор

Такие программы, как «mdadm» (для программного управления RAID) и «Palimpsest Disk Utility» (используется на Ubuntu LiveCD), используют информацию S.M.A.R.T, чтобы сообщить вам, когда диск готовится к работе или вышел из строя. Однако на автономном сервере (без графического интерфейса) нет службы, которая сообщит вам о предстоящей гибели, пока не стало слишком поздно. Более того, как вы узнали бы об этом, не входя на сервер вручную?

Этот сценарий, запускаемый один раз в день с cron, будет предупреждать, если количество сбойных секторов на жестком диске системы достигло предела, который намеренно ниже порога «диск неисправен», и отправляет предупреждение администратору машины по электронной почте.

Предпосылки и предположения

  • Вы уже настроили поддержку по электронной почте для сервера с помощью кнопки « Как настроить оповещения по электронной почте в Linux " руководство.
  • Вы используете систему на основе Debian.
  • Вы не используете * аппаратный RAID-контроллер.
  • Вы увидите, как я использую VIM в качестве программы-редактора, это просто потому, что я к нему привык ... вы можете использовать любой другой редактор, который вам нравится.

* Потому что вполне возможно, что аппаратный RAID-контроллер блокирует доступ системы к этой информации.

Настроить

Установите пакет «smartmontools», который считывает информацию S.M.A.R.T с контроллера жесткого диска и представляет ее нам.

sudo aptitude установить smartmontools

Создайте сценарий монитора:

sudo vim /root/smart-monitor.sh

Сделайте это содержанием:

#! / Bin / Bash
######## Функция электронной почты ########
email_admin_func ()
{
echo "To: [email protected]"> $ temp_email_file
echo "From: [email protected]" >> $ temp_email_file
echo "Тема: Превышен порог монитора S.M.A.R.T" >> $ temp_email_file
echo "" >> $ temp_email_file
эхо -e $ 1 >> $ temp_email_file
/ usr / sbin / ssmtp -t <$ temp_email_file
echo "Отправлено письмо администратору"
}

smartc_func ()
{
/ usr / sbin / smartctl -A / dev / $ 1 | grep Reallocated_Sector_Ct | tr -s '' | cut -d '' -f11
}

######## Конец функций ########

######## Установить рабочий параметр ########
temp_email_file = / tmp / smart_monitor.txt
allowed_threshold = 5 # установите количество сбойных секторов, с которыми вы готовы жить, рекомендуется 5.

######## Двигатель ########
для i в sda sdb; do # Добавьте или вычтите имена дисков из этого списка в зависимости от вашей установки.
если [[ "`smartc_func $i`" -ge $allowed_threshold ]]; тогда
echo Отправка письма администратору
email_admin_func "Один из жестких дисков на" `hostname`" достиг верхнего порогового значения !!! nПороговое значение было установлено на $ allowed_threshold, а статус диска $ i был: "` smartc_func $ i` ""
быть
сделанный

Ключевые моменты, на которые следует обратить внимание:

  • Функция электронной почты - задайте соответствующую информацию, например имя устройства и адрес электронной почты администратора.
  • Разрешенный порог - установите для этого параметра значение, которое вы считаете подходящим, я использовал 5, потому что для используемых мной жестких дисков «серверного уровня» установлен предел 10 (я обнаружил, что порог для дисков «потребительского уровня» равен достигать 140).
  • Установите устройства, которые вы хотите отслеживать, регулируя перечисление имен дисков в цикле «for». В настоящее время включены два диска (sda и sdb), поэтому внесите необходимые изменения. Вы можете включить все свои диски или только некоторые, * если вам по какой-то причине нужно исключить диск.

* в моей первоначальной настройке первым диском был флеш-накопитель, поэтому чтение информации на нем, если это вообще возможно, бесполезно.

Сделайте скрипт исполняемым:

sudo chmod + x /root/smart-monitor.sh

Настройка завершена.

Запланируйте автоматический запуск скрипта

Мы хотим, чтобы скрипт запускался автоматически, поэтому мы создадим для него новое задание Cron.
Как указано в « Как настроить оповещения по электронной почте в Linux ». В результате, если сам скрипт обнаружит ошибку, cron автоматически проинформирует нас по электронной почте, как только это произойдет.

Откройте планировщик заданий cron:

sudo crontab -e

Добавьте это к своему содержимому:

0 7 * * * /роот/смарт-монитор.ш > /тмп/ласт_смарт_монитор_рун.лог

Это заставит скрипт запускаться каждое утро в 7 утра.


Весь ваш сектор принадлежит нам :)

Raspberry Pi Box Hard Drive Scripts


Обслуживание и оптимизация - Самые популярные статьи

Что такое assistant_service и assistantd и почему они работают на моем Mac?

Обслуживание и оптимизация Jun 7, 2025

Вы могли заметить Assistantd и assistant_service, когда с помощью монитора активности и поинтересовался..


Как скрыть раздел восстановления (или другой диск) в Windows

Обслуживание и оптимизация Apr 16, 2025

Производители ПК часто включают разделы для восстановления. Обычно они скрыты, но иногда становят�..


Как улучшить распознавание рукописного ввода на ПК с Windows 10

Обслуживание и оптимизация May 1, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Windows 10 позволяет использовать рукописный ввод в любом приложении ..


Как использовать Fraps для записи видео ваших компьютерных игр

Обслуживание и оптимизация Mar 31, 2025

Fraps наиболее известен как простой и легкий способ видеть активное считывание кадров ваш..


Как вручную обновить Kindle

Обслуживание и оптимизация Jul 14, 2025

Если вам нужны новейшие функции Kindle прямо сейчас (или вы пропустили предыдущее обновление), лучший ..


Как сделать текст больше и читабельнее на Android

Обслуживание и оптимизация Jul 3, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Посмотрим правде в глаза: независимо от того, насколько хороши экраны на н..


Добавить страницу новой вкладки в стиле iGoogle в Chrome

Обслуживание и оптимизация Jan 8, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Вы устали от стандартной страницы новой вкладки в Chrome и хотите чего-то другого? ..


Создайте страницу пользовательских закладок в Firefox

Обслуживание и оптимизация Sep 23, 2025

НЕКЕШЕРОВАННЫЙ КОНТЕНТ Ищете забавный и творческий способ отображения и доступа к вашим любимым закла..


Категории