我们现在的做法
我们有一个文件服务器(使用NFS),多个Web服务器挂载并将这些挂载用作Web根目录。当我们部署代码库时,我们将归档文件(tar.gz)SCP到NFS服务器,并直接在文件服务器的“Web目录”中解压数据。
问题
在部署过程中,我们看到一些I/O错误,通常是当请求的文件无法读取时:Smarty error: unable to read resource: "header.tpl"
。这些错误似乎在部署完成后消失,因此我们认为直接将数据解压到Web目录可能不太安全。我猜我们需要一些原子性的东西。
我的问题
如何能够将新文件原子地复制到现有目录(Web服务器的根目录)中?
编辑
我们正在向Web目录中不妥协的文件添加文件,而该目录中已经存在文件。因此,复制目录或使用符号链接不是选项(我所知道的)。