Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - curl в цикл

Ответить
Настройки темы
CMD/BAT - curl в цикл

Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


День добрый, помогите сделать скриптик проверки доступности локального ресурса, у самого какая-то ерунда получается
Имеется такая команда
Код: Выделить весь код
curl -Is http://127.0.0.1:8081/digsign
после загрузки компьютера этот адрес отвечает минут через 5-10
Код: Выделить весь код
HTTP/1.1 200 OK
Date: Tue, 23 Jul 2019 09:36:46 GMT
Access-control-allow-origin: *
Нужен батник, который будет висеть в автозагрузке, и при включении пк ежеминутно проверять доступность ресурса, и когда он станет доступен, то выводить сообщение на экран и прекращать свою работу.

Спасибо!

Отправлено: 13:12, 23-07-2019

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


mxm199, что такое «-Is»? Что значит «отвечает минут через 5-10»?

Отправлено: 18:12, 23-07-2019 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Вот наклепал такое чудо
Код: Выделить весь код
@Echo Off

:begin

curl -Is http://127.0.0.1:8081/digsign
if errorlevel 1 (
goto begin
) else (
Msg * "Работает"
)

:stop
В принципе работает, но вопрос, как можно ограничить количество попыток, допустим 10 и установить паузу между запросами?

Цитата Iska:
Что значит «отвечает минут через 5-10» »
В принципе это не важно, но за это время поднимается локальный сервер, может и не подняться


Цитата Iska:
«-Is» »

получить информацию заголовка HTTP

Отправлено: 18:14, 23-07-2019 | #3


Пользователь


Сообщения: 87
Благодарности: 4

Профиль | Отправить PM | Цитировать


Цитата mxm199:
установить паузу между запросами? »
Пауза в 60 секунд:
Код: Выделить весь код
timeout /t 60 /nobreak
Я бы посоветовал обратить внимание на утилиту HTTPing.
https://www.vanheusden.com/httping/
Код: Выделить весь код
httping --url http://127.0.0.1 --port 8081 --count 10 --interval 60

Отправлено: 19:24, 23-07-2019 | #4


Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата Patroklos:
HTTPing »
Да, спасибо, но немного не то, там свои нюансы, мне нужно проверить, что именно страничка открывается, curl для этого очень подходит.
timeout, забыл я про него, только вечером вспомнил)))

Всё же интересно как ограничить количество циклов? Может что-то с этой конструкцией

while
...
end while

но как прикрутить не понятно

Или можно как-то прицепиться к errorlevel, то есть если количество полученных errorlevel=1 достигло 10, то goto :eof ?

Отправлено: 09:25, 24-07-2019 | #5


Пользователь


Сообщения: 69
Благодарности: 0

Профиль | Отправить PM | Цитировать


так напридумывал
Код: Выделить весь код
set /a x=0

if errorlevel 1 (
set /a x+=1
if %x% == 5 goto stop
не знаю на сколько корректно, но вроде работает

Отправлено: 10:03, 24-07-2019 | #6


Ветеран


Contributor


Сообщения: 2708
Благодарности: 1684

Профиль | Отправить PM | Цитировать


mxm199, Не проверял, нету Вашей утилиты, если она выдаёт ErrorLevel, то
Код: Выделить весь код
@Echo Off
cls
	Set /A tPause=60
	Set /A nTry=10

        FOR /L %%i IN (1,1,%nTry%) DO (
		curl -Is http://127.0.0.1:8081/digsign && (Echo +++ Соединение установлено &GoTo :Continue)
		TIMEOUT /T %tPause% /NOBREAK
	)
	Echo !!! Соединение не установлено
:Continue
Pause
Exit /B

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 14:23, 24-07-2019 | #7


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


megaloman, curl не "Ваша", а штатная в современных Windows

Отправлено: 17:40, 24-07-2019 | #8


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Busla, и у неё реально самопальные параметры, отсутствующие в оригинальной версии?

По факту, там надо не только errorlevel смотреть, но и разбирать содержимое ответа при errorlevel = 0. Мне так кажется.

Отправлено: 22:01, 24-07-2019 | #9


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Iska, каким местом они самопальные? Ровно те же, что и в современных дистрибутивах Linux:
Код: Выделить весь код
-I, --head          Show document info only
-s, --silent        Silent mode
Цитата Iska:
там надо не только errorlevel смотреть, но и разбирать содержимое ответа при errorlevel = 0 »
IMHO топикстартеру скорее всего хватило бы и факта, что порт слушается

Отправлено: 00:06, 25-07-2019 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - curl в цикл

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Циклом выполнить GET curl mulrus Скриптовые языки администрирования Windows 3 07-08-2018 18:15
CMD/BAT - curl, запись ссылки в файл? Freddy1984 Скриптовые языки администрирования Windows 10 08-05-2017 12:36
Прочее - bash, curl, помогите разобраться rsersh Общий по Linux 5 23-06-2016 14:14
CMD/BAT - [решено] cURL Proxy https shmel_sv@vk Скриптовые языки администрирования Windows 1 30-07-2015 09:43
Имитация браузера через cURL dmit.medv Вебмастеру 0 28-12-2012 18:02




 
Переход