Недорогое решение для мониторинга доступности 50-200 сайтов?

K1
На сайте с 08.10.2009
Offline
21
1065

Здравствуйте, подскажите пожалуйста как решить проблему автоматической проверки доступности 50-100 url? Желательно, чтобы вы подсказали мне скрипт или программу, которую можно было бы поставить и запускать раз в 30 минут на хостинге/серваке. Просто сервисы вроде host-tracker считаю неоправданно дорогими для моего количества сайтов, однако, если знаете недорогие подобные сервисы, буду рад услышать.

B
На сайте с 02.05.2007
Offline
240
#1

cron а-ля крон

K1
На сайте с 08.10.2009
Offline
21
#2

что крон? насколько я знаю, крон это просто планировщик заданий? Проверять доступность то чем?

кстати нашел сервис, который делает примерно то, что мне нужно. Вот ссылка(может кому полезна будет):

http://www.uptimerobot.com/

удивительно, что сервис бесплатный. Из недостатков: подтормаживает(видимо потому что бесплатный), можно только 50 url на аккаунт.

Никто не подскажет, есть ли бесплатные/недорогие варианты организации чего-то похожего для себя на своем хостинге?

MK
На сайте с 02.05.2005
Offline
165
#3

Очень недорогое решение, бесплатное, sh-скрипт из 30 строк.

В файл check-urls.txt записываете произвольное количество адресов URL. По одному на строке.

Запускаете так:

./check-urls.sh < /dev/null 2> /dev/null > check-urls.log &

и он работает постоянно.

Если в течение 20-50 секунд сайт три раза подряд выдает страницу меньше 1k или какую-то ошибку, вам высылается письмо, запишите свой адрес в начале скрипта. Плюс факт ошибки записывается в лог check-urls.log

Для работы нужно, чтобы была программа mail, проверьте ее работу:

echo ok | mail -s test me@me.me

программа fetch для FreeBSD или wget для остальных, проверьте:

fetch -qo- http://ru.ru

wget -qO- http://ru.ru

txt check-urls.sh.txt
K1
На сайте с 08.10.2009
Offline
21
#4

Ок, спасибо огромное. Это уже кое-что. Я так понял для его запуска нужен доступ к ssh? А нельзя ли реализовать проверку на определенное ключевое слово в полученном wgetом коде? Т.е. если есть определенное слово на сайте - все нормально, сайт работает правильно, если такового слова нету(например хостер повесил заглушку типа: бла-бла-бла сайт заблокирован за неуплату) отправляем email.

А, еще вопрос: как этот скрипт будет реагировать, если сайт грузится очень медленно?

MK
На сайте с 02.05.2005
Offline
165
#5
Kalmikov1327828:
Ок, спасибо огромное. Это уже кое-что. Я так понял для его запуска нужен доступ к ssh?

Ну да.

А нельзя ли реализовать проверку на определенное ключевое слово в полученном wgetом коде?

Добавьте в первых строчках скрипта

KEYWORD="magic word"

Вместо "magic word" пишете ваше слово, слово лучше писать латинскими буквами, потому что в шелле и на сайте у вас могут быть разные кодировки.

а в скрипте все три упоминания по две строки


n=`$cmd "$url" | wc -c`
test "$n" -gt $MIN_SIZE && continue

заменить каждое на строку


$cmd "$url" | grep -q "$KEYWORD" && continue

Но это заданное вами слово должно быть на всех проверяемых страницах.

А, еще вопрос: как этот скрипт будет реагировать, если сайт грузится очень медленно?

Таймаут там 10 секунд. Задается в первых строках скрипта. Если за 10 секунд сайт не ответил, то считается ошибкой.

K1
На сайте с 08.10.2009
Offline
21
#6

Ясно, буду пробовать. Еще раз спасибо

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий