我在家用服务器上运行了几个电子商务网站(我自己的、家人的和客户的)。我的电脑是一台较旧的 Dell Dimension 4600,运行的是 Ubuntu 12.04 lts。这台电脑没有出现任何即将发生故障的迹象,但由于它比较旧,我想对它进行良好的备份,以防万一。我需要能够在服务器停机后的几天内将数据恢复到新服务器。使用 Clonezilla 之类的东西是最好的方法吗?或者应该有更好的方法来做到这一点吗?
更新
我不需要在执行此操作时网站处于活动状态,目前我有大约 8GB 的数据。对于我想要的,位复制似乎是一个好主意,即进行备份,然后如果发生任何事情,能够插入备份磁盘并开始使用。磁盘布局只有一个磁盘,一个 80GB 的大分区。是的,我知道这不是最好的,当我安装操作系统并最初设置它时,我对整个 Linux、Ubuntu、Web 服务器以及几乎所有东西的世界都很陌生。所以也没有 LVM
答案1
如果在执行此操作时网站不需要处于活动状态,则有很多解决方案,最简单的方法是确保磁盘以只读方式安装(例如,使用启动盘),并将一些内容从一个磁盘复制到另一个磁盘。这样,如果出现问题,您只需插入备份磁盘,打开服务器即可。
如果在复制时网站需要处于活动状态,问题会更加复杂。在 Linux 下处理备份的一个好方法是使用 rsnapshot 之类的程序安排增量备份(但 rsync 可能更适合您的情况)。但是,如果您必须进行恢复,则需要先重建服务器,然后复制最新的快照。
您没有指出要备份的数据量、更改频率或磁盘布局。这两点对于制定备份解决方案都很有用。如果您正在构建新系统(或者在构建原始系统时有先见之明),则在 LVM 上构建文件系统,然后对 LVM 进行快照并备份通常会很有用。这意味着没有停机时间,您可以在某个时间点对文件系统的 [大部分] 进行精确复制。当然,它假设您使用 LVM。
同样,如果您的操作系统和应用程序之间有很好的分离,您可能希望从 Ubuntu 12.04 的基本安装开始,然后逐步备份应用程序。您可能还希望通过转储数据库来以不同于 Web 文件的方式处理数据库。同样,tar(有时在块设备上)可以很好地进行完整的压缩备份 - 但在备份块设备时,请注意,如果不小心,块设备备份期间的文件更改可能会造成很大影响。
不幸的是,很难得到更具体的信息,因为备份在某种程度上是特定于系统的。
答案2
对于这种情况,最好的方法可能是拥有另一台可以同步数据的服务器。购买 VPS 并同步您的代码、数据库和配置。我刚刚查看了我使用的提供商,您可以获得具有 20GB 空间、512MB RAM、1.5TB 传输和 2 个 IP 的 VPS,每年 20 美元。将规格翻倍,每年只需 40 美元。微不足道。如果您不喜欢便宜货,您可以使用 Amazon Cloud 或 Slicehost,但我认为您在浪费钱。
当您更改代码时,请使用 Dreamweaver(或您使用的任何工具)对“测试”站点进行更改。然后将您的数据推送到“生产”站点。大多数 Web 开发 IDE 都能够拥有“测试”服务器和“生产”服务器。您选择哪个。如果是我(我与一些客户的情况非常接近),我会将 VPS 设置为生产站点,并使用主服务器作为备份站点。
初始设置很简单。您可以将所有已安装的软件包从 apt-get 转储到一个 txt 文件中,然后使用它在您的 VPS 上安装相同的软件包。打包 Web 文件、数据库转储,然后您可以使用 SCP 将它们直接复制到您的其他服务器。(可能使用一个简短的 shell 脚本完成所有操作。)您可能还想复制大部分 /etc。初始设置完成后,保持同步就很简单了。
这有很多好处。
- 首先,你家断电了,但你的服务器没有宕机。
- 其次,代码更改是通过您的 LAN 进行测试和开发的,因此它们速度很快,您无需等待通过慢速连接推送数据(YMMV)。
- 您的硬件出现故障,需要一个星期才能拿到零件 - 但您的生产站点仍保持正常运行。
- 您可以从任何地方通过 SSH 进入您的测试服务器,进行更改、测试它们,然后以最少的中断将它们推送到您的生产服务器。
- 您可以在与生产机器完全相同的配置上进行开发。因此,您不必使用 XAMPP 或其他开发环境,也不必担心依赖关系、结构或所有其他开发细节。
- 主机托管。如果您的生产机器(VPS)因某种原因出现故障,请将您的 DNS 重新指向主服务器。将您的 DNS TTL 保持在 30 分钟,您的停机时间将降至最低。
这就是我的建议。
是的,我每年花费 40 美元左右的 VPS 却向人们收取 1000 多美元……我还向他们推销主机托管服务,这只是另一个提供商或我家里机架上的另一个 VPS。如果你想在网络游戏中赚钱,你就得站在巨人的肩膀上。开发代码很好,但剩余收入才是关键,兄弟。低买高卖。