Как мы это делаем сейчас
У нас есть файловый сервер (с использованием NFS), который монтируется на нескольких веб-серверах и используется монтируется как корневой веб-сайт. Когда мы развертываем нашу кодовую базу, мы SCP архив (tar.gz) на сервер NFS и разархивируем данные прямо в «веб-каталог» файлового сервера.
Проблема
Во время процесса развертывания мы наблюдаем некоторые ошибки ввода-вывода, в основном, когда запрошенный файл не может быть прочитан: Ошибка Smarty: невозможно прочитать ресурс: "header.tpl"
Эти кажется, что ошибки исчезают после завершения развертывания, поэтому мы предполагаем, что это связано с тем, что разархивирование данных непосредственно в веб-каталог не является самым безопасным. Полагаю, нам нужно что-то атомарное.
Мой вопрос
Как мы можем атомарно скопировать новые файлы в существующий каталог (корневой каталог веб-сервера)?
ИЗМЕНИТЬ
Файлы, которые мы бескомпромиссно переносим в веб-каталог, - не единственные файлы, которые находятся в каталоге. Мы добавляем файлы в каталог, в котором уже есть файлы. Так что копирование каталога или использование символической ссылки - это не вариант (о котором я знаю).