Как проверить, жив ли сайт и запустить скрипт, если не в Windows с помощью curl - PullRequest
0 голосов
/ 11 июля 2020

Я пытаюсь написать простой скрипт, чтобы проверить, жив ли сайт, подождать 5 секунд ответа и запустить другой скрипт, если сайт не отвечает.

Для проверки сайта я использую следующую команду curl:

curl.exe -Isf https://www.yahoo.com/ | findstr /I /R "200 301"

для ожидания я использую команду «тайм-аут».

К сожалению, мне не удалось запустить его должным образом.

Привет Герхард, Спасибо за ответ. К сожалению, уровень ошибки не работает, потому что, когда условие истинно, я получаю HTTP / 1.1 200 OK (например), но когда условие не истинно, я не получаю ответа, если только я не использую -v (фото прилагается)

Моя цель - проверить, жив ли сайт и жив ли он >>> Выйти. В противном случае >>> запустите сценарий.

---- TRUE -----

curl.exe -Isf "https://www.yahoo.com/" | findstr / IR "200 301" HTTP / 1.1 200 ОК

---- НЕ ИСТИНА ---- Не верно

СПАСИБО, мне удалось чтобы создать его в PowerShell.

1 Ответ

1 голос
/ 11 июля 2020

Похоже, вы хотите запустить свой сценарий только в том случае, если вы не получили ответ от сайта с помощью http/1.1 200 или http/1.1 301

Просто используйте errorlevel:

curl.exe -Isf "https://www.yahoo.com/" | findstr /IR "200 301"
if not errorlevel 0 down_script.cmd

Где down_script.cmd - это другой сценарий, который вы хотите запустить, если сайт недоступен.

в качестве альтернативы, если вы запускаете другие команды в сценарии, просто goto

curl.exe -Isf "https://www.yahoo.com/" | findstr /IR "200 301"
if not errorlevel 0 goto :SiteDown
goto :eof

:SiteDown
echo here you will do other things if http/1.1 200 or 301 was not met.

Кроме того, я немного не понимаю, зачем вам нужна была команда timeout, поскольку этот сценарий будет ждать ответа от curl, прежде чем перейти к следующей строке.

...