【发布时间】:2011-12-16 19:03:48
【问题描述】:
我们现在的工作方式
我们有一个文件服务器(使用 NFS),可以挂载多个 Web 服务器并将这些挂载用作 Web 根目录。当我们部署我们的代码库时,我们将一个存档(tar.gz)SCP 到 NFS 服务器,并直接在文件服务器的“web 目录”中解压缩数据。
问题
在部署过程中,我们看到一些 i/o 错误,主要是在无法读取请求的文件时:Smarty error: unable to read resource: "header.tpl" 这些错误似乎在部署完成后消失了,所以我们假设这是因为直接取消归档数据到 web 目录不是最安全的事情。我猜我们需要一些原子的东西。
我的问题
我们如何以原子方式将新文件复制到现有目录(Web 服务器的根目录)中?
编辑
我们在 web 目录中不妥协的文件并不是该目录中唯一的文件。我们正在将文件添加到已经有文件的目录中。因此,复制目录或使用符号链接不是一种选择(据我所知)。
【问题讨论】:
-
rename is atomic(mv),也可能最好使用软链接,而实际的 web 目录只是 /storage/www.revision.3282378 的链接,例如
标签: php linux deployment