SMSTools – отправляем СМС о недоступности сервера(ов)

В статье мы рассмотрели возможность отправки СМС-сообщений через USB-модем во FreeBSD. Решил описать пример скрипта, который бы давал нам понять через СМС, что сервер упал. Немного лирики, у меня на работе используется одно серверное приложение, которое крутится на MacOS9 и нет возможности от него избавиться, под приложение выделен отдельный G4 и вроде бы работает, но валиться причем непредсказуемо и хотелось бы иметь возможность узнавать об этом как можно быстрее, чтобы можно например пораньше на работу приехать и поднять сервер, чтобы пользователям было хорошо:)
Для этого напишем небольшой скрипт на Shell, будем опрашивать наш сервер через команду ping, которая к счастью при успешной отработке возвращает нам 0 и мы считаем, что все остальное у нас настроено (SMSTools).

#!/bin/sh
#Сделаем несколько переменных:
#1) Укажем файл для хранения состояния при падении сервера
lockfile="/home/admins/scripts/host_down.loc"
#2) определим в переменную host IP адрес сервера
host="10.0.0.15"
#3) Создадим переменную с полным путем до скрипта sendsms и телефонным номером
#на который будем посылать СМС (можно указать несколько номеров через пробел)
sendsms="/usr/local/bin/sendsms 79XXXXXXXXX"
ping -q -c 2 $host > /dev/null 2>&1
    if [ $? = 0 ]; then
        if [ -f $lockfile ]; then
        rm $lockfile
        $sendsms "CЕРВЕР ПОДНЯЛСЯ" > /dev/null 2>&1
        fi
        else
        if [ -f $lockfile ]; then
        exit
        else
        echo "SERVER is DOWN" > $lockfile
        $sendsms "СЕРВЕР УПАЛ" > /dev/null 2>&1
fi
fi

Объяснять особо по скрипту нечего, собственно что он делает
1) Пингует host
2) При удачном пинге, проверяет есть ли файл который создается при падении сервера, если есть, то удаляет его и отсылает нам СМС, о том,что сервер стал доступен, если файла нет, то скрипт ничего не делает
3) При неудачном пинге, создается файл $lockfile, отправляется СМС о падении сервера, при этом СМС будет отправлена если $lockfile до этого отсутствовал.
Как-то так:)
Ну и запихиваем скрипт в crontab, я запускаю каждые 5 минут
# crontab -e

#SENDSMS
*/5     *       *       *       *       /home/admins/scripts/up_down_hosts.sh

Всем спасибо:)

0 0 голосовать
Рейтинг статьи
Подписаться
Уведомление о
guest
0 Комментарий
Встроенные отзывы
Просмотр всех комментариев