如何从 Windows 客户端远程备份 Linux/Ubuntu 服务器?

如何从 Windows 客户端远程备份 Linux/Ubuntu 服务器?

我在一家托管公司有一个 Ubuntu 18.04 VPS。

我通过 Windows 10 客户端上的 Web 面板和 SSH 进行管理。

我想要完全远程备份我的 VPS,以便将来可以恢复。

我该如何从 Win 客户端执行操作?

谢谢

答案1

基本

大多数情况下,您需要备份 3 项内容:

  1. 您的 VPS 客户端上传的文件(即 Wordpress 中的媒体文件)
  2. 您的数据库
  3. Linux 设置(又名 /etc 下的文件)

其他任何东西都是静态数据,您不必备份它。(即,您可以通过重新安装系统和工具/软件来恢复它)

具有所有属性的本地备份

假设您的 VPS 硬盘上有足够的空间,您可以先根据需要创建数据的 tarball。例如,我为每个数据库创建一个 tarball,这样我就可以恢复该特定数据库,并得到一个包含所有内容的大文件。

# for files
tar cf - /path/to/folder/to/backup | xz -9 > /home/backups/my-files.tar.xz

# for databases
mysqldump db_name | xz -9 > /home/backups/my-database.sql.xz

将它们放在一个文件夹中(/home/backups在我这里的示例中,/var/backups例如 Ubuntu 有),然后使用 SSH(或 SFTP)进行传输。

scp vps:/home/backups/my-files.tar.xz C:\Backups
scp vps:/home/backups/my-database.sql.xz C:\Backups

多个备份文件

此外,您可以(可能想要)自动化一切。在这种情况下,我强烈建议您考虑在文件名中使用日期:

DAY_OF_WEEK=`date + %u`
tar cf - /path/to/folder/to/backup \
             | xz -9 > /home/backups/my-files-${DAY_OF_WEEK}.tar.xz

这样,您就会获得 7 个不同的文件,每次传输时都可以选择正确的文件。此外,它还会给您几天时间来检测问题。当然,您可以使用%d,但请记住这会占用 VPS 上的大量空间。请确保如果增加备份数量,不会溢出可用磁盘空间。

请注意,该tar实用程序mysqldump将保存恢复文件所需的所有必要信息。

转移

最后,进行传输。您可以使用 SSH,或者,为了确保获取最新版本,您可以使用同步。这将让你获得已更改的文件,而你不需要做太多的事情。

rsync <options> C:\Backups vps:/home/backups

检查同步文档以找到正确的。有很多。请好好测试以确保你正确使用它们。

注意:我rsync在我的 Linux 机器之间使用压缩,效果很好。但是,在 Linux 和 MS-Windows 之间效果可能不太好(用户名、权限等)。这就是为什么我建议您首先创建 tarball 和数据库转储,如上所述。无论如何,拥有 tarball 是个好主意,因为它们可以很好地压缩。请注意,对于数据库,转储是确保您获得正确快照的最简单方法。

安全

自动化时,您需要密钥,无需密码。否则,每次 rsync 或 SSH 传输开始时,您都必须坐在电脑前……这不切实际。

为了实现这一点,我创建了一个拥有自己账户的特殊用户(即/home/backups,用户名是backups...提示提示!)我创建了一个没有密码的密钥,该用户在 Linux 机器上拥有最低限度的权限。主要是,它只能读取数据...当然,没有sudo或其他类似的高级权限。

备份文件甚至可以在 root 等用户下创建/home/backups,因此无法被篡改backups,只能读取以进行传输。这样您就知道这些文件是安全的。

最后一步

现在看起来您有一个全自动备份……

好吧!请确保文件看起来正确。甚至,如果您有时间,请尝试恢复。这将是手动的,但希望您永远不需要这些备份。(我很少需要我的,我喜欢这样!)

备份系统的复制

您可能还对更高级的主题感兴趣:复制。这是您创建 VPS 第二个实例并在两台计算机之间复制所有数据的地方。我知道Hadoop,例如。但是,我不太确定它是否能在 Linux 和 MS-Windows 之间很好地工作,因此第二个 VPS 作为备份... 一些数据库系统带有这样的复制功能,例如卡桑德拉PostgreSQL 和 MySQL 也有复制机制,可用于备份您的数据。这些可以在 Linux VPS 和 MS-Windows 之间工作。但是,它可能需要您的 MS-Windows 计算机始终处于启动和运行状态。

因此,使用 Hadoop 复制文件夹并使用复制设置数据库,您也可以实现复制。只是要让一切按预期工作还需要做更多的工作……(而且您还可能出现其他潜在的安全问题。)

答案2

由于它是 VPS,因此您可以访问所有内容,并且可以安装所需的所有软件。您选择的任何解决方案都可以,但是如果您有一台 Linux 服务器来备份,那么设置 rsync 之类的东西会很好。

由于您处理的是 Windows 客户端,您可以使用类似巴库拉。它是一款开源备份软件,一旦安装完成,无需管理员干预。Bacula 支持 Linux、UNIX 和 Windows 备份客户端。管理员和操作员可以通过命令行控制台、GUI 或 Web 界面配置系统。

答案3

您尝试过 FTP 吗?它应该可以完成工作。使用 vsftpd 作为服务器和 FileZilla 客户端或文件资源管理器的内置 FTP 客户端。

要在 Ubuntu 中安装 vsftpd,请运行以下命令:

sudo apt install vsftpd

注意:登录名是您的 Ubuntu 登录名,您将从主目录开始,然后可以导航到根目录。

答案4

FTP 是一个不错的选择,但由于您已经拥有 SSH 访问权限,因此您也可以使用 SFTP。如果您使用的是 ssh 客户端,例如Bitvise在 Windows 上,然后您可以轻松获取 SFTP 窗口并将您想要的任何文件从 VPS 复制到 Windows 客户端上的任何本地文件夹中。
但 FTP 是更标准的选项。

此外,还有其他选择。此链接应该有帮助

相关内容