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

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

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.