Как мы делаем вещи сейчас
У нас есть файловый сервер (с использованием NFS), который монтируется несколькими веб-серверами, и используем эти подключения в качестве корневого веб-сервера. При развертывании нашей кодовой базы мы отправляем архив (tar.gz) на NFS-сервер и разархивируем данные непосредственно в «веб-каталоге» файлового сервера.
Выпуск
В процессе развертывания мы видим некоторые ошибки ввода-вывода, в основном, когда запрошенный файл не может быть прочитан: Smarty error: unable to read resource: "header.tpl"
Эти ошибки, похоже, исчезают после завершения развертывания, поэтому мы предполагаем, что это происходит из-за разархивирования данных напрямую в веб-каталог не самый безопасный из вещей. Я предполагаю, что нам нужно что-то атомное.
Мой вопрос
Как мы можем атомарно копировать новые файлы в существующий каталог (корневой каталог веб-сервера)?
EDIT
Файлы, которые мы бескомпромиссны в веб-каталоге, не являются единственными файлами в каталоге. Мы добавляем файлы в каталог, в котором уже есть файлы. Поэтому копирование каталога или использование символической ссылки - это не вариант (я знаю о нем).