У клиента есть внутренний сервер на базе Windows, на котором он редактирует содержимое CMS. Данные синхронизируются каждую ночь с работающим веб-сервером. Это обходной путь для медленного интернет-соединения.
Есть две вещи, которые нужно синхронизировать: новые файлы (уже отсортированные) и база данных mySQL. Для этого я пишу скрипт, который экспортирует базу данных в файл дампа с помощью mysqldump и загружает дамп.
Процесс загрузки выполняется с помощью стороннего инструмента под названием ScriptFTP, инструмента автоматизации FTP.
Затем мне нужно запустить сценарий импорта на основе PHP на целевом сервере. В зависимости от значения, возвращаемого этим сценарием, операция ScriptFTP продолжается, и некоторые каталоги переименовываются.
Для этого мне нужен внешний инструмент, так как scriptFTP поддерживает только FTP-вызовы. Я думал о версии wget для Windows.
В scriptFTP я могу выполнить любой пакетный или исполняемый файл, но я могу только проанализировать уровень ошибки, полученный в результате вызова, а не вывод stdout. Это означает, что мне нужно вернуть errorlevel 1, если операция импорта PHP пойдет не так, и errorlevel 0, если все пойдет хорошо. Кроме того, очевидно, мне нужно вернуть положительный уровень ошибки, если соединение со сценарием импорта вообще не может быть установлено.
У меня есть полный контроль над скриптом импорта PHP, и я могу решить, что он делает при ошибке: выводит сообщение об ошибке, возвращает заголовок, что угодно.
Как вы собираетесь запускать wget (или любой другой инструмент для запуска импорта на стороне сервера) и возвращать определенный уровень ошибки в зависимости от того, что возвращает PHP-скрипт?
Лучше всего сейчас я создаю пакетный файл, который выполняет команду wget, сохраняет результат в файле, а пакетный файл возвращает уровень ошибки 0 или 1 в зависимости от содержимого файла. Но я действительно не знаю, как сопоставить содержимое файла с помощью пакетного программирования.