У клиента есть собственный сервер на базе 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 в зависимости от содержимого файла. Но я не знаю, как сопоставить содержимое файла с помощью пакетного программирования.