Вызовите URL с помощью wget и верните ERRORLEVEL в зависимости от содержимого URL - PullRequest
1 голос
/ 09 января 2010

У клиента есть собственный сервер на базе Windows, на котором он редактирует содержимое CMS. Данные синхронизируются каждую ночь с живым веб-сервером. Это обходной путь для медленного интернет-соединения.

Необходимо синхронизировать две вещи: новые файлы (уже отсортированные) и базу данных mySQL. Для этого я пишу скрипт, который экспортирует базу данных в файл дампа, используя mysqldump, и загружает дамп.

Процесс загрузки выполняется с помощью стороннего инструмента с именем ScriptFTP , средства автоматизации FTP.

Затем мне нужно запустить скрипт импорта на основе PHP на целевом сервере. В зависимости от возвращаемого значения этого скрипта, операция ScriptFTP продолжается, и некоторые каталоги переименовываются.

Мне нужен внешний инструмент для этого, так как scriptFTP поддерживает только вызовы FTP. Я думал о версии для Windows wget .

В scriptFTP я могу выполнить любой пакетный или exe-файл, но я могу только проанализировать уровень ошибки , полученный в результате вызова, а не вывод stdout. Это означает, что мне нужно вернуть errorlevel 1, если операция импорта PHP пошла не так, и errorlevel 0, если она прошла хорошо. Кроме того, очевидно, что мне нужно вернуть положительный уровень ошибки, если не удалось установить соединение со сценарием импорта.

У меня есть полный контроль над импортирующим PHP-скриптом, и я могу решить, что он делает при ошибке: вывести сообщение об ошибке, вернуть заголовок, что угодно.

Как бы вы запустили wget (или любой другой инструмент для запуска импорта на стороне сервера) и вернули определенный уровень ошибки в зависимости от того, что возвращает PHP-скрипт?

Моя лучшая ставка прямо сейчас - это создание пакетного файла, который выполняет команду wget, сохраняет результат в файле, а пакетный файл возвращает уровень ошибки 0 или 1 в зависимости от содержимого файла. Но я не знаю, как сопоставить содержимое файла с помощью пакетного программирования.

1 Ответ

2 голосов
/ 09 января 2010

Вы можете сделать следующее в powershell:

$a = wget --quiet -O - www.google.com
$rc = $a.CompareTo("Your magic string")
exit $rc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...