Эта проблема возникает довольно часто при загрузке файлов .war или .ear, которые всего лишь немного больше, чем файл .zip, на удаленный сервер и развертывает их на сервере приложений.
Обычно на этапе разработки сервер приложений находится в режиме «горячего развертывания», что означает, что сам сервер приложений ожидает изменений в определенном каталоге, если он распознает, что допустимый файл приложения (.ear или .war) был удален в нем, то он распаковывается и развертывается как Java-приложение.
Бывает, что во время загрузки, и обычно это делается с помощью таких инструментов, как ant или maven непосредственно из среды разработки, сервер приложений начинает развертывание, чтобы обнаружить позже, чем поврежденный zip-файл, поскольку загрузка не была завершена еще.
Обходной путь, который я нашел, состоит в том, чтобы загрузить во внешний каталог, затем подключиться к ssh и mv файл в папку «горячего развертывания».
Есть ли у вас какие-либо предложения о том, как с этим бороться? Я не системный администратор, но мне хотелось бы иметь своего рода сценарий оболочки (может быть, запущенный в cron), который прослушивает каталог и, когда загрузка идет (через scp), подождите, пока она не закончится, затем выполните команду mv к каталогу сервера.
Какие переменные мне нужно учитывать при создании этого скрипта?