Проверка сайта по коду 200

Задача: проверять наличие сайта в сети. В качестве условия: все ок, если получаем код 200. Если код 404 или 301, сервер должен отправить письмо о том, что сайт недоступен.

Решается достаточно просто. Проверьте наличие в системе команды curl:

whereis curl

(ответ)curl: /usr/bin/curl /usr/include/curl /usr/share/man/man1/curl.1.gz

Если нет - установите его.

yum install curl #для RedHat, CentOS и т.д.

apt-get install curl #для Debian, Ubuntu и т.д.

Далее давайте попробуем выбрать какую-либо страницу. Не обязательно (а даже желательно), чтобы это была не главная страница вашего сайта. Например, это будет страница http://wikiadmin.net/Cron. Запишите такой скрипт:

1
2
3
4
5
6
 #!/bin/bash
 CODE_AD=$(curl --write-out %{http_code} --silent --output /dev/null http://wikiadmin.net/Cron)
 OK=200
 if [ "$CODE_AD" != "$OK" ]; then
  echo "site wikiadmin.net does not answer" | mail -s "site wikiadmin.net is down" admin@wikiadmin.net
 fi

Здесь curl запрашивает код страницы и, если ответ не равен 200, то идет письмо на указанный вами ящик (в нашем случае это admin@wikiadmin.net). Все, что вам останется - это сделать скрипт исполняемым (chmod +x) и добавить этот скрипт в крон на выполнение каждые пять минут (или как вам понравится). Например:

0,5,10,15,20,25,30,35,40,45,50,55 * * * * /PATH/check_site >/dev/null 2>&1