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