代码之家  ›  专栏  ›  技术社区  ›  James McMahon

备份(或者同步)开发机器的好方法是什么?[关闭]

  •  4
  • James McMahon  · 技术社区  · 16 年前

    我广泛地使用源代码管理来处理与我正在处理的项目(源代码、文档等)相关的任何事情,而且我从未以这种方式丢失过任何东西。

    但是,在我的开发机器上发生了两到三次崩溃(在过去的4年中蔓延),迫使我重新安装系统并重新配置应用程序(Eclipse、Vim、Firefox等)。在重新安装后的几个星期里,我一直缺少一个或另一个小应用程序,一些PHP或Python模块不在那里,诸如此类的东西。

    虽然这不是致命的,但很烦人,而且会浪费时间。因为这看起来很罕见,我没有为实际的解决方案费心,但同时我已经形成了一种心态,我只是不希望类似的事情再发生。

    那么,开发机器的好备份解决方案是什么?我读过 this very similar question 但那家伙真的想要和我不同的东西。

    我想要的是在货架上放一些备用硬盘驱动器,并将崩溃后的恢复时间缩短到大约一个小时或更少。

    考虑到这一点,我认为还有一种方法可以使用备份机制保持两个或多个dev工作站同步,这样我就可以随时在不同的PC上继续工作。


    编辑 :我应该提一下

    • 我在运行Linux
    • 我需要增量备份,这样频繁备份(一天一次或两次)就便宜了。

    RAID很好,但我大部分时间都在笔记本电脑上,没有第二个HD,没有E-SATA,我也不确定是否要对USB驱动器进行突袭:这真的有效吗?

    我见过系统管理员使用rsync,有没有人有过这种经验?

    11 回复  |  直到 16 年前
        1
  •  3
  •   James McMahon    16 年前

    我会按照你喜欢的方式安装这台机器,然后想象它的样子。然后,您可以设置rsync(甚至SVN)来每晚备份homedir/etc。

    然后当你的电脑死机时,你可以重新映像,然后重新部署你的home dir。 唯一的问题是升级/新软件,但要完全解决这一问题,唯一的方法是对驱动器进行完整的夜间备份。


    谢谢,这听起来是个好建议。我认为应该可以定期更新映像(以获取软件更新/安装),但可能不会经常更新。例如,我可以在虚拟机中启动映像,并执行全局包更新或其他操作。

    汉诺

        2
  •  3
  •   Bart S.    16 年前

    您可以在安装和配置所有内容后创建工作站的映像。然后当你的电脑崩溃时,你只需恢复图像。

    这样做的一个(大)缺点是,自创建图像以来,您不会有任何更新或更改。

        3
  •  1
  •   Simon C.    16 年前

    Cobian Backup 是一个可靠的Windows备份系统,将执行到外部驱动器的定时备份。

        4
  •  1
  •   baretta    16 年前

    您可以创建硬盘驱动器映像。从备份映像还原将所有内容还原到您获取映像时的确切状态。 或者您可以创建一个安装程序来安装几乎所有需要的东西。

        5
  •  1
  •   Jon W    16 年前

    由于您对rsync很感兴趣,下面的文章介绍了如何通过rsync为Debian Linux制作可引导备份映像:

    http://www.debian-administration.org/articles/575

    rsync对于本地和网络同步来说是快速且容易的,而且本质上是增量的。

        6
  •  0
  •   kmkaplan    16 年前

    您可以使用RAID-1。它是同步类型,而不是备份类型。

        7
  •  0
  •   akorsun    16 年前

    我使用RAID镜像与外部硬盘驱动器结合使用Vista的系统备份实用程序来备份整个机器。这样我可以很容易地修复硬盘故障,但如果我的系统损坏,我可以从E-SATA驱动器恢复(我只连接该驱动器进行备份)。

    全面披露:我从来没有必要恢复备份,所以它有点像你车里的安全气囊;希望它在你需要的时候能工作,但没有办法确定。另外,备份过程是手动的(可以自动进行),所以我只能像上次备份一样安全。

        8
  •  0
  •   Chris Nava    16 年前

    您可以使用Linux“dd”命令行实用程序克隆硬盘。 只需从Linux光盘启动,克隆或恢复驱动器,然后重新启动。 它也适用于Windows/Mac驱动器。

    这将把第一个硬盘的分区1(/dev/sda)克隆到第二个硬盘的分区1(/dev/sdb)

    dd if=/dev/sda1 of=/dev/sdb1
    

    这将把第一个硬盘的分区1克隆到第二个硬盘上的文件。

    dd if=/dev/sda1 of=/media/drive2/backup/2009-02-25.iso
    

    只需交换if=和of=的值即可恢复驱动器。

    如果您从Ubuntu Live CD启动,它将自动安装您的USB驱动器,以便使用外部驱动器执行备份/恢复。

    警告: 在运行上述命令之前,请验证驱动器的身份。如果不小心,很容易覆盖错误的驱动器。

        9
  •  0
  •   dmityugov    16 年前

    我猜这并不是你想要的,但我只是记录下我在一台机器上安装和配置的所有内容。 Google Docs 让我从任何地方执行此操作,并在机器崩溃时保持文档的完整性。

    一个好的分步文档通常会将恢复时间缩短到一天左右。

        10
  •  0
  •   gareth_bowles    16 年前

    如果你使用的是Mac电脑,只需插入一个外部硬盘,时间机器就会完成剩下的工作,按照你设定的时间表为你的机器创建一个完整的图像。当我换掉MacBook Pro中的硬盘时,我从时间机器的图像中恢复过来,它工作得很有魅力。

    我公司的另外一个选择是让他们的开发环境在大型Linux服务器上。他们只是使用本地机器运行一个NX客户机来访问远程桌面(NX是 许多的 比VNC更快)-这具有快速性能、在服务器上自动备份文件以及在客户使用的相同硬件上开发的优点。

        11
  •  0
  •   zvikico    16 年前

    无论您使用什么解决方案,最好也有一个辅助备份。辅助备份应该是非现场备份,并且包括您的基本工作(源代码、重要文档)。如果你的主站点发生了什么事(办公室失火,有人闯入,抢走了你所有的硬件等等),你最终还是可以恢复。

    有许多在线备份解决方案。您只需在可靠的供应商(如AmazonS3)处获得远程存储,并每天同步您的工作即可。解决方案取决于您可以获得的访问类型,但rsync可能是您将用于此目的的工具。