![如何从 Windows 客户端远程备份 Linux/Ubuntu 服务器?](https://linux22.com/image/735540/%E5%A6%82%E4%BD%95%E4%BB%8E%20Windows%20%E5%AE%A2%E6%88%B7%E7%AB%AF%E8%BF%9C%E7%A8%8B%E5%A4%87%E4%BB%BD%20Linux%2FUbuntu%20%E6%9C%8D%E5%8A%A1%E5%99%A8%EF%BC%9F.png)
我在一家托管公司有一个 Ubuntu 18.04 VPS。
我通过 Windows 10 客户端上的 Web 面板和 SSH 进行管理。
我想要完全远程备份我的 VPS,以便将来可以恢复。
我该如何从 Win 客户端执行操作?
谢谢
答案1
基本
大多数情况下,您需要备份 3 项内容:
- 您的 VPS 客户端上传的文件(即 Wordpress 中的媒体文件)
- 您的数据库
- 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 登录名,您将从主目录开始,然后可以导航到根目录。