Автоматическое выключение сервера при отключении электричества

Держать дома сервер да ещё и с рейд массивами без ups довольно опасно. Всегда соседи могут залезть в щиток или электрики проводить плановые работы. При аварийном отключении электричества ваш 5й рейд скорее всего будет не восстановим. Чтобы избежать возможных проблем надо использовать источник бесперебойного питания (UPS). Только запас аккумулятора ограничен, а при аварии дома может никого не оказаться. Многие современные UPS имеют связь с компьютером и отдают команду на завершение работы. Если же у вас самый простой UPS который только надрывно пищит, то можете повторить мой опыт.

 

Я особо не заморачивался и написал скрипт, который проверяет пингуется ли мой роутер. Соответственно если не пингуется, значит скорее всего электричества нет, или сетевой кабель отключен. А раз так, что энергию тратить, пора отключаться )))

Делается всё элементарно.

Сперва создадим сам скрипт в домашней директории root:

sudo nano /root/ups.sh

Вставим:

#!/bin/bash
if ping -c 4 192.168.0.1 > /dev/null
then
#Power On
exit 0
else
#Power Off
shutdown -h now
fi

Далее нужно выставить права на выполнение этого скрипта.

sudo chmod 744 /root/ups.sh

И настроить cron. Для этого создадим файл:

sudo nano /etc/cron.d/ups

Со следующим содержимым:

SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
* * * * * root /root/ups.sh

 

Вот и всё. Надеюсь кому то пригодится.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.