Я - одинокий веб-разработчик со своим собственным Centos VPS, на котором размещены несколько небольших веб-сайтов для моих клиентов. Сегодня я обнаружил, что моя служба httpd остановлена (без видимой причины - но это другой поток). Я перезапустил его, но теперь мне нужно найти способ, чтобы я мог получать уведомления по электронной почте и / или SMS, если это произойдет снова - мне не нравится, когда мой клиент звонит мне, чтобы сказать, что их веб-сайт не работает!
Я знаю, что, возможно, существует много разных возможностей, включая программное обеспечение для мониторинга серверов. Я думаю, что все, что мне действительно нужно, это скрипт, который я могу запустить как задание cron с моего хоста dev (который постоянно работает в моем офисе), который пытается загрузить страницу с моего рабочего сервера, и если она не загружается в течение, скажем, 30 секунд, затем он отправляет мне письмо или SMS. Я довольно мусор в сценариях оболочки, отсюда и этот вопрос.
Любые предложения будут с благодарностью.
Ответы:
Ну ... Самый простой сценарий, я могу написать:
Добавьте его в cron как:
Но слишком просто сказать вам, в чем проблема, если она существует.
UPD: теперь этот однострочный текст проверяет определенную строку на странице («Строка нормальной работы»), которая должна появляться только при нормальной работе.
UPD2: простой способ отправить страницу с ошибкой по электронной почте:
Минус в том, что страница перезапрашивается в случае неудачного первого теста. На этот раз запрос может быть успешным, и вы не увидите ошибку. Конечно, можно сохранить выходные данные и отправить их в виде вложения, но это сделает скрипт более сложным.
источник
Посмотрите на этот скрипт:
curl
утилита командной строки для получения URL Сценарий проверяет код выхода ($? Относится к коду выхода самой последней команды в сценарии оболочки) и, если он отличен от 0, сообщает об ошибке (код выхода 0 обычно относится к успеху). Как упоминалось в ответе HUB, вы также можете просто||
из командной строки запустить вторую команду, если первая не удалась.Как только вы выяснили статус, вам просто нужно отправить себе письмо. Вот пример, который использует
mail
команду для отправки почты из сценария оболочки, предполагая, что на тестируемом вами ящике установлена SMTP:Кстати, если вы плохо разбираетесь в сценариях оболочки, не ограничивайте себя сценарием оболочки. Вы можете использовать скрипт ruby, php скрипт, любой скрипт, который может запустить ваш сервер! Просто добавьте
#!/path/to/executable
строку в начале скрипта - например:#!/usr/bin/php
источник
Проверьте этот скрипт . он проверяет список веб-сайтов и отправляет электронную почту (в список электронных писем) всякий раз, когда что-то не так (HTTP-ответ отличается от 200). Сценарий создает файл .temp, чтобы «запомнить», какой веб-сайт (-ы) не удалось выполнить при последней проверке, чтобы вы не получили несколько электронных писем. файл .temp удаляется, когда веб-сайт снова работает.
Добавьте следующие строки в конфигурацию crontab ($ crontab -e)
Доступно на Github
источник
Я знаю, что все вышеперечисленные скрипты именно то, что вы просили, но я бы посоветовал посмотреть на monit, потому что он отправит вам электронное письмо, если apache не работает, но также перезапустит его (если он не работает).
источник
Я бы порекомендовал Pingdom для этого. Их бесплатный сервис позволяет проверить 1 сайт, но это все, что вам нужно, чтобы проверить 1 сервер. Если у вас есть iPhone, они бесплатно отправляют вам сообщения, поэтому вам не нужно покупать смс-кредиты, и у них есть несколько настроек, которые вы можете использовать. Мой установлен, чтобы уведомить меня после 2 повторных попыток (10 минут) и каждые 10 минут простоя после этого. Это потрясающе, так как он также проверяет сообщения HTTP 500, указывающие, что сайт не работает. Если это не удается, он сразу же проверяет ваш сайт снова с другого сервера в другом месте. Если это не удастся, это вызывает ваши предпочтения в том, как / когда вы хотите получать уведомления.
источник
Небольшое изменение вышеперечисленного.
Скрипт для проверки доступности сайта каждые 10 секунд. Записывать неудачные попытки в
siteuptime.txt
файл, чтобы его можно было просмотреть (или отобразить в Excel) позже.источник
источник
Поскольку у вас много сайтов на вашем VPS, я бы порекомендовал вам открыть учетную запись на сайте мониторинга сайтов, например host-tracker.com. Помимо оповещения о том, что сайт не работает, они также предоставляют вам еженедельное, ежемесячное и ежегодное время работы ваших сайтов. Whish очень полезен для управления и производительности.
источник
Как насчет этого:
источник