![]() |
Запуск программы (перезагрузка) если сайт недоступен
Здравствуйте.
На компьютере расположен Open Server. Иногда, после перезагрузки, он не запускается сразу - лечится повторной перезагрузкой. Также бывают случаи что он просто глючит и сайты недоступны. Нужно написать какой-либо CMD или BAT чтобы он пинговал какой-либо файл на сайте, и если он недоступен - тогда запуск перезагрузки сервера (запуск ярлыка\программы). Спасбо заранее! |
«Пинговать файл» — это, конечно, оригинальное предложение. Но лучше отправлять http-запросы веб-серверу.
|
Буду благодарен за любое решение проблемы.
|
Нельзя, т.о. проверять "доступность" файлов на сайтах в интернете.
Можно работать с ресурсами лишь серверов в домене или рабочей группе и просматривать в командной строке список открытых файлов на серверах в одной интрасети. Чем не устраивает ping <список узлов> & if "%errorlevel%"=="1" (START %PATH%\FILE)? |
В таком случае будет пинг ip? Пробывал пинговать ip когда сайт недоступен, пинг проходит отлично. Т.е. сервер остановлен, а пинг проходит.
|
denntl, возможен выход за рамки категории «cmd/bat» или использование сторонних средств?
|
Да, конечно. Просто я думал это не должно быть настолько сложным.
|
Тогда проще всего пользовать Wget — Википедия и анализировать код возврата.
|
Пинговать нужно по доменному имени веб-сервера. Можно пинговать через nslookup.
Еще, вариант если это возможно со стороны сервера, при наличие службы telnet клиент можно проверить доступность веб-сервера из cmd командой telnet ServerName 80 (8080) Если подключение успешно, запросить http-страницу командой get /../.. С портами по протоколу SSL (https), подключение устанавливается, но данные не возвращаются. А, так только пользоваться сторонними программами |
Цитата:
Помогите, пожалуйста, составить программу. 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/statu...ser_online.gif & if "%errorlevel%"=="1" (START C:\restart.cmd) |
Цитата:
Можно так: Код:
wget.exe --spider --quiet "http://www.oszone.net" || "%SystemRoot%\system32\notepad.exe" |
Вроде получилось, спасибо! Но при попытке вызова этой строчки из файла .cmd - ничего не выполняется. Такое впечатление что он запускается не из под админа, просто мелькают строки и окно погасает. Как сделать чтоб эту проверку я мог планировщикам выполнять по расписанию, что файлом все работало, а не вручную только?
|
Цитата:
|
Решил проблему простым перетаскиванием исполняемого файла в папку Windows, спасибо огромное за помощь!
|
denntl, можно было решить, также просто указав полный путь к «wget.exe», например:
Код:
"%ProgramFiles%\GnuWin32\bin\wget.exe" --spider --quiet "http://www.oszone.net" || "%SystemRoot%\system32\notepad.exe" |
Время: 14:49. |
Время: 14:49.
© OSzone.net 2001-