【问题标题】:best practices for uploading many files to live server while updating database在更新数据库时将许多文件上传到实时服务器的最佳实践
【发布时间】:2012-02-22 23:00:46
【问题描述】:

我有大约 200 个文件需要在下班后推送到我们的实时服务器。除了这次推送之外,我还有一些数据库更新需要与此次发布一起运行。

过去在这个系统上所做的是在服务器上创建一个更新文件的目录并创建一个 cron 脚本来复制这些文件以覆盖它们在服务器上的先前版本。然后执行对数据库的调用。

以下是我正在尝试解决的问题:

1) 没有登台服务器。

2) 没有简单的方法可以从我们的版本控制 (svn) 推送到我们的实时服务器

3) 有很多文件并且目录结构很深,因此在服务器上设置要复制的目录副本似乎不稳定且耗时。

最好的方法是什么?

【问题讨论】:

  • 没有安装真正的组合修订/构建/部署系统,并且取决于您需要执行此操作的频率以及文件列表将更改多少,我会制作一个外壳使用 cfg 文件在 ftp 上循环的脚本,每行只有 2 个条目,即/src/path/file.txt remoteHost:/alt/path/blah/blah/。您还可以使用该文件来驱动比较文件条目的第二遍(确认已复制新文件)。想到了很多其他的事情,但不知道具体细节,很难再有意见了 ;-) ...祝你好运!
  • 嗯,数据库更新。希望您知道数据库更新会影响其中一个文件的风险,反之亦然。当您更改下面的文件时,是否有可能让实时数据库接受更改?可能是灾难的秘诀。 ----- 在开始这一切之前您是否正在运行备份?您是否尝试过恢复备份并证明它们有效?我已经看到“企业级备份”没有像广告宣传的那样工作。我的朋友,你可能会进行更多的测试和计划。就像他们在牙医那里说的那样,只花时间用牙线清洁你想保留的牙齿。祝你好运!

标签: bash ftp


【解决方案1】:

我过去做过类似事情的方式是让一个 cron 作业运行一个脚本,一个管理机器:

1) 在某种登台机器上检查我在生产服务器上需要的文件 2)rsync的文件到服务器 3) 在服务器上运行一个 post-rsync 脚本(比如通过 ssh'ing 到服务器)

但是,您指定您无法使用暂存机器,我假设您的意思是您根本没有管理机器,并且您也无法在服务器上签出您的存储库。这使得干净地做到这一点变得更加困难。您确定您至少不能在这里使用您的工作站或类似的机器作为管理或登台机器吗?

【讨论】:

    猜你喜欢
    • 2012-09-19
    • 2010-09-22
    • 2012-12-12
    • 2011-08-28
    • 1970-01-01
    • 2019-11-17
    • 2021-09-21
    • 2017-09-11
    • 2018-11-23
    相关资源
    最近更新 更多