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

Оглавление:

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

Видео: Сценарий монитора жесткого диска для серверов без головы Linux

Видео: Сценарий монитора жесткого диска для серверов без головы Linux
Видео: Как создать собственный шрифт - YouTube 2024, Май
Anonim
Современные жесткие диски имеют внутренний механизм под названием S.M.A.R.T. через которые можно узнать, когда жесткий диск вот-вот потерпит неудачу. Не было бы неплохо, чтобы сервер отправил вам электронное сообщение до такого отказа?
Современные жесткие диски имеют внутренний механизм под названием S.M.A.R.T. через которые можно узнать, когда жесткий диск вот-вот потерпит неудачу. Не было бы неплохо, чтобы сервер отправил вам электронное сообщение до такого отказа?

обзор

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

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

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

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

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

Настроить

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

sudo aptitude install smartmontools

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

sudo vim /root/smart-monitor.sh

Сделайте это довольным:

#!/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

Ключевыми моментами являются:

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

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

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

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

Настройка выполнена.

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

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

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

sudo crontab -e

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

0 7 * * * /root/smart-monitor.sh > /tmp/last_smart_monitor_run.log

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

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

Рекомендуемые: