Показать полную графическую версию : Запуск программы (перезагрузка) если сайт недоступен
Здравствуйте.
На компьютере расположен Open Server. Иногда, после перезагрузки, он не запускается сразу - лечится повторной перезагрузкой.
Также бывают случаи что он просто глючит и сайты недоступны.
Нужно написать какой-либо CMD или BAT чтобы он пинговал какой-либо файл на сайте, и если он недоступен - тогда запуск перезагрузки сервера (запуск ярлыка\программы).
Спасбо заранее!
«Пинговать файл» — это, конечно, оригинальное предложение. Но лучше отправлять http-запросы веб-серверу.
Буду благодарен за любое решение проблемы.
Нельзя, т.о. проверять "доступность" файлов на сайтах в интернете.
Можно работать с ресурсами лишь серверов в домене или рабочей группе и просматривать в командной строке список открытых файлов на серверах в одной интрасети.
Чем не устраивает
ping <список узлов> & if "%errorlevel%"=="1" (START %PATH%\FILE)?
В таком случае будет пинг ip? Пробывал пинговать ip когда сайт недоступен, пинг проходит отлично. Т.е. сервер остановлен, а пинг проходит.
denntl, возможен выход за рамки категории «cmd/bat» или использование сторонних средств?
Да, конечно. Просто я думал это не должно быть настолько сложным.
Тогда проще всего пользовать Wget — Википедия (http://ru.wikipedia.org/wiki/Wget) и анализировать код возврата.
Пинговать нужно по доменному имени веб-сервера. Можно пинговать через nslookup.
Еще, вариант если это возможно со стороны сервера, при наличие службы telnet клиент можно проверить доступность веб-сервера из cmd командой
telnet ServerName 80 (8080)
Если подключение успешно, запросить http-страницу командой
get /../..
С портами по протоколу SSL (https), подключение устанавливается, но данные не возвращаются.
А, так только пользоваться сторонними программами
Iska
Тогда проще всего пользовать Wget — Википедия и анализировать код возврата.
Почитал, думаю это то, что нужно.
Помогите, пожалуйста, составить программу.
1. Скачивание файла в указанный каталог (-P)[5]:
wget -P /path/for/save ftp://ftp.example.org/some_file.iso
## Скачали файл с сайта ##
2. Вывести содержание ответа в консоль:
wget http://example.org --quiet -O -
## Получили "1" так как файл скачан ##
3. Что делать дальше? Как вызвать запуск программы если ответ "0" ? Какое расширени имеет программа, в командной строке не выполнить?
Что-то типа такого?
wget -P C:/downloads/ http://forum.oszone.net/images/statusicon/user_online.gif & if "%errorlevel%"=="1" (START C:\restart.cmd)
wget http://example.org --quiet -O -
## Получили "1" так как файл скачан ## »
Вообще-то нет: wget manual, Exit-Status (http://www.gnu.org/software/wget/manual/wget.html#Exit-Status).
Можно так:
wget.exe --spider --quiet "http://www.oszone.net" || "%SystemRoot%\system32\notepad.exe"
— если произошла ошибка, запустить «Блокнот», иначе ничего не делать.
Вроде получилось, спасибо! Но при попытке вызова этой строчки из файла .cmd - ничего не выполняется. Такое впечатление что он запускается не из под админа, просто мелькают строки и окно погасает. Как сделать чтоб эту проверку я мог планировщикам выполнять по расписанию, что файлом все работало, а не вручную только?
Но при попытке вызова этой строчки из файла .cmd - ничего не выполняется. Такое впечатление что он запускается не из под админа, просто мелькают строки и окно погасает. »
Для отладки уберите параметр «--quiet», добавьте параметры «--verbose» и «--server-response». Добавьте в пакетный файл команду «pause», дабы окно консоли не закрывалось. И смотрите.
Решил проблему простым перетаскиванием исполняемого файла в папку Windows, спасибо огромное за помощь!
denntl, можно было решить, также просто указав полный путь к «wget.exe», например:
"%ProgramFiles%\GnuWin32\bin\wget.exe" --spider --quiet "http://www.oszone.net" || "%SystemRoot%\system32\notepad.exe"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.