Rexxer

Some tips for me and other

Проверка живучести сайта

Проверка на живучесть различных хостов у меня реализована на smokeping.

Нужно было проверять живучесть сайта не только на хттп ответ и пинг, но и на содержимое.

Скорее всего это можно было сделать и в smokeping, но я решил сделать быстрее:

#!/bin/sh

# Пингаем сайт через 1 внешний канал

test1=`ping -c 3 mysite.com | grep seq=2`

# Пингаем через второй канал, вдруг первый упал

test2=`ping -c 3 192.168.10.244 | grep seq=2`

# Проверяем был-ли ответ хоть по одному каналу
if [ -z “$test1” ] && [ -z “$test2” ];
then
mail -s “No ping to mysite.com – it can be a problem with our Internet-channel” site.alert@mydomain.com < /usr/local/etc/mail.txt
exit 0
fi;

# Если пинг прошел – проверяем сайт на наличие конкретного содержимого (у меня это содержимое выбирается из базы, т.е. если сайт лег по причине неработоспособности базы или движка – это будет видно)

test3=`/usr/local/bin/curl -s “http://mysite.com/contact-us.aspx” | grep job | awk ‘{ print $0 }’`
#test=`curl -s “http://mysite.com/about-us.aspx” | grep job | awk ‘{ print $0 }’`
#echo $test
if [ -z “$test3” ];
then
#       echo FAILURE!!!
mail -s “The site mysite.com is down!” site.alert@mydomain.com < /usr/local/etc/mail2.txt
echo “ok” > /usr/local/etc/site.tmp
elif [ -f /usr/local/etc/site.tmp ];
then
#           echo OK!!!
rm /usr/local/etc/site.tmp
mail -s “The site mysite.com is working now!” site.alert@mydomain.com < /usr/local/etc/mail.txt
fi;
# Если было обнаружено, что сайт лежит – взводится флаг (файл site.tmp) и отправляется сообщение, если сайт заработал – флаг снимается и отправляется сообщение, что все ок.

Leave a Reply