Я хотел бы проверить работоспособность службы, позвонив по конкретной ссылке. Похоже, самое простое решение - использовать cron для проверки каждую минуту или около того. В случае ошибок cron отправляет мне электронное письмо.
Я попытался использовать cUrl для этого, но я не могу заставить его выводить сообщения только об ошибках. Если я попытаюсь направить вывод в / dev / null, он напечатает отчет о проделанной работе.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5559 100 5559 0 0 100k 0 --:--:-- --:--:-- --:--:-- 106k
Я попытался просмотреть параметры скручивания, но я просто не могу найти что-то подходящее для ситуации, когда вы хотите, чтобы он молчал об успехе, но шуметь об ошибках.
Есть ли способ заставить curl делать то, что я хочу, или есть какой-то другой инструмент, на который я должен обратить внимание?
curl
monitoring
Palto
источник
источник
icinga
или любой другой системы мониторинга?Ответы:
Как насчет
-sSf
? Из справочных страниц:Например:
источник
curl -fsS http://example.org > /dev/null
. Это ничего не выдаст, когда ничего плохого, но он напечатает код состояния при ошибках, что меня устраивает.-f
для будущих ссылок.Я думаю, что для простейшего способа проверить, жив ли сайт, вы можете использовать следующий метод:
Это вернется
HTTP/1.1 200 OK
. Если результат не соответствует вашему выводу, обратитесь за помощью.источник
Вам нужен
-s
флаг (без вывода сообщений ),-f
флаг (сбой с кодом завершения при ошибке) и вы можете использовать этот-o
флаг для перенаправления вывода:Это просто плохой пример для простого скрипта cron. Обычно вы хотите получать только одно письмо, если сайт не работает.
источник
Вы можете захватить статистику синхронизации по сети от curl. Задержки каждой фазы в цикле запроса / ответа могут быть полезны для определения работоспособности.
источник
Этот способ поможет вам при попытке протестировать сайт при наличии https:
источник
Меня недавно попросили придумать что-то, что больше походило бы на изощренное сердцебиение.
Или, расширенный для немного большей читабельности,
То, что я сделал, было
curl
веб-сайтом, проанализировало все ссылки из HTML, а затемcurl
эти проанализированные ссылки, выводя только код состояния. Тогда я бы искал http коды состояния> = 400, чтобы найти ошибки.источник
Ответ:
Пояснения:
timeout 3s
установит 3-секундный таймаут для вашего запроса. Ответ медленнее считается "не здоровым"-f
флаг curl рано не будет установлен,-S
будет отображать ошибки,-s
будет подавлять нормальный вывод,-I
будет получать только заголовки HTTP, а не содержимое. (Как всегда, более подробная информация доступна поman curl
команде.)-checkend
Директива openssl проверяет даты истечения срока действия сертификата. В моем примере это 20 дней (указано в секундах).источник
-s
и-S
поменялись местамиУ Curl очень специфические коды состояния выхода.
Почему бы просто не проверить их?
Использование:
Результат:
Заметки:
Этот скрипт только проверяет, можно ли разрешить сайт.
Этот код должен помочь вам, если все, что вас волнует, это то, что сайт работает или не работает.
Однако, если вы сделаете несколько изменений в блоке if / else, вы можете легко проверить другие коды состояния, если хотите
источник