在实时网站上维护备份和版本控制的最佳解决方案是什么?
作为我工作的一部分,我在几个现场网站上工作。随着时间的推移,我们需要一种有效的方法来维护活动文件夹的备份。此外,更新这些站点可能会很痛苦,特别是如果更改由于任何原因而破坏了活动环境。
最理想的是无麻烦的源代码管理。我实现了一段时间的SVN,这是一个很好的半解决方案,用于备份和修改控制(临时或中断更改的简单还原)等等。
不幸的是,SVN将.SVN隐藏目录放置在任何地方都会造成问题,特别是当其他开发人员更改文件夹结构或复制/移动网站目录时。我听说过这样的观点,即这是一个教育问题等等,但是SVN所采取的方法对我们来说并不是一个实际的解决方案。
我在想,也许增量备份解决方案可能更好。
其他可能性包括:
我真的很感激你的建议,如何最好的方式来维护实时网站的备份,理想的方法是快速检索过去的版本。
答:
- It's not so much about education as no familiarity with anything but VSS and a lack of time/effort to learn anything else.
- The xcopy/7-zip approach sounds reasonable I guess but it would quickly take up a lot of room right?
- As far as source control, I think I'd like the source control to just say that "this is the state of the folder now, I'll deal with that and if I can't match stuff up that's your fault, I'll just start new histories" rather than fail hard.
- Yeah that's a nicer way of doing it but would require a significant cultural change. Having said that I very much like this approach.
- Nice, I didn't think about using Rsync to deploy. Does this only upload the differences? Overwriting the entire live directory everytime we make a change would be problematic due to site downtime.
我仍然想看看是否有更传统的选择。
发布于 2008-08-26 02:37:51
您仍然可以使用SVN,但是不需要对活动环境进行签出,而是进行导出,这样就不会创建.svn目录。当然,它的缺点是在您的活动环境中不会发生任何代码更改。这是件好事。
作为一般规则,不应允许在生产系统上进行代码更改。更改应该在开发/测试/UAT环境中进行和测试,然后确认为OK后,您可以在SVN中使用类似于RELEASE的代码标记。然后,在活动系统上,导出带有该标记的代码。
发布于 2008-08-26 02:49:17
我们使用选项3. Rsync。我编写了一个bash脚本来完成这个任务,并进行了一些额外的检查,但是下面是它所做的基本工作。
到目前为止,它一直在发挥作用。我们不必担心用户冲突,也不必有一个单独的用户在生产机器上运行svn。
发布于 2008-08-26 02:37:57
如果人们移动、删除或添加文件,而不将其告知源代码管理系统,那么您选择的任何源代码管理解决方案都会出现问题。我不知道有任何源代码管理项可以解决这个问题。
如果您无法对project1上的工作人员进行教育,那么您可能只需要每天提供快照。一些简单的东西,比如使用xcopy到网络驱动器的批处理文件,并且可能在命令行上使用7-zip压缩它,这样它就不会占用太多的空间,这可能是最简单的解决方案。
我非常不相信这一点,也许只是因为人们太固执,不愿意学习,或者做“额外的工作”。不管源代码管理可以节省多少时间,当它们必须回到以前的版本时,或者有两个人编辑了相同的文件。
https://stackoverflow.com/questions/27292
复制相似问题