我的情况:
我有 VPS(ubuntu),上面有 2 个网站。由于我是 VPS 新手(最近我从共享主机转移过来),我花了近 2 周的时间学习如何配置我的 VPS,以便按照我想要的方式运行所有网站。我在配置 VPS 时犯了很多错误,所以我通过重新安装/配置/错误/重新安装/配置等方式来学习它。
现在一切都正常,VPS 正在运行,我需要的所有服务也都正常运行,我学到了很多教训 - 一切都正常。
问题:
进行整个 VPS 备份的最简单方法是什么?
我可以使用 WinSCP 轻松备份 VPS 吗?我的意思是连接到根 (/) 文件夹并从那里下载所有 VPS 文件?
如果是,如果需要从头开始重新安装整个 VPS,我稍后该如何恢复它?
有关我的情况的其他信息:
- 数据库将手动备份(可以通过 phpmyadmin)
- 我的 VPS 管理面板(SolusVM)中没有备份工具
- 我没有使用任何 GUI cpanel/directadmin/virtualmin 等,只是使用控制台
答案1
我备份远程虚拟服务器的首选方法是简单地复制文件 - 内核无论如何都在主机上。当然,在恢复时您必须小心谨慎,并且可能无法进行完整恢复(与磁盘映像不同)。另一方面,迁移到另一台服务器(例如用于测试的本地服务器)更容易。
现在,通过远程连接下载大量小文件实际上相当慢,因为开销很大。如果你在物理上远离服务器,这种情况会更加严重。通常,我更喜欢将所有内容打包成一个tar
存档,然后将其压缩为较小的大小。
执行此命令的命令是tar cpzf filename.tar.gz /
(其中/
表示从根目录递归备份所有内容)。您可能希望排除现有备份文件- 如果您计划保留大量备份,将它们全部放在一个目录中并排除该目录会更容易。然后您只需使用您喜欢的任何方法下载该文件即可。
tar xpf filename.tar
恢复操作将在根目录中使用命令进行。您还可以指定目标目录和-C
。
答案2
我已经回答了一个相同的问题在 serverfault 上,虽然它涵盖了与 bob 的答案相同的一些内容,但我使用的工具略有不同,重点也略有不同。我建议创建一个包列表,并使用 rsync(因为它可以维护权限,并且在文件传输方面非常高效)。
如果其他方法都失败了,还有一种老式的方法 - 使用 dpkg --get-selections 转储已安装软件包的列表,然后使用 dpkg --set-selections 安装它们。如有必要,创建与源系统相同的用户 - cat /etc/passwd 应该会列出这些用户,您可以使用 diff 检查这两个列表是否相同。
然后使用 rsync 复制 /etc/ 文件夹用于设置、各种 /home/ 文件夹用于用户(并在此处检查权限)以及其他文件夹(如 /var/www/)。测试,确保所有内容都已存在,然后就大功告成了。这比设置新服务器花费的时间更少。
有时,简单老套的方法才是最好的。如果您手动解决此问题,只需编写一个脚本,即可自动从当前服务器复制此问题。
答案3
使用 rsync 轻松进行增量备份。您可以通过命令行或脚本执行更复杂的场景。
您可以从以下示例开始:
$ options="--stats -aHh --delete"; echo == RUNNING with options: $options; time rsync -e ssh $options root@your-server-ip-or-hostname:/ /destination/my-server-backup --exclude /proc --exclude /dev --exclude /sys --exclude /run/udev
您可以在我整理的脚本中找到更多示例,尽管最初是为 Windows 设计的,但它可以直接应用于 Linux:https://github.com/paravz/windows-rsync-backup