linux – 多个目录的原子复制
这个问题与Web应用程序的部署有关.
简介(你可以跳过) 我正在使用django,我的托管服务提供商设置他们的django支持的方式最终导致webapp分散在至少三个位置: > / something /< my_apps> /中的实际应用程序代码 所以当我部署/升级网站时,我需要一次更新几个目录. 实际问题: 有没有办法让原子文件复制?我无论如何都不是linux系统的“专家”,所以请原谅我的无知. 复制操作涉及几个目录树,基本上是两个或三个: copy _tree1 to tree1 copy _tree2 to tree2 原子,我的意思是: >它要么完全复制,要么根本不复制.它永远不应该处于某种复制状态但有些失败状态. 我的想法是有一些像双缓冲的东西:我在暂存区域准备一切,例如_tree_x,然后将它复制移动到tree_x,应该是一个简单地改变磁盘上指针的原子操作. 我认为单个这样的复制移动操作在linux中是原子的(不是吗?),但是我需要几个这样的操作才是原子的;我希望他们被视为一次移动操作. 解决方法
我认为你在一个临时区域的正确轨道上.我不知道任何原子命令,但如果你暂存你的文件,然后使用脚本删除第一个目录并移动(不复制)第二个目录,并为所有三个目录执行,它应该非常快.
或者,您可能想要使用符号链接.那样你可以大致: /version/22/<my-apps> /version/22/<my-site> /version/22/<my-media> 并使用相同的子目录部署/ version / 23目录.然后,实际文件会去(并且再次,为了速度,你需要一个脚本),你可以使用符号链接,这样当任何人进入最新页面时,他们会获得当前的任何版本(这一切都发生了)透明,他们不知道).这样做的好处是,在您决定删除之前,您的旧工作仍然存在. [虽然,授予,版本控制系统更适合用于保持较旧的工作.] 您必须检查1)您可以运行脚本(以及Web用户不能这样做的方式!),以及2)您可以使用符号链接(因为某些Web服务器配置为不遵循它们.) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |