在Linux上使用Duplicati进行个人备份

本教程是为本地USB硬盘执行个人备份,具有加密,重复数据删除和压缩....

在Linux上使用Duplicati进行个人备份

本教程用于执行个人备份到本地USB硬盘驱动器,具有加密,重复数据删除和压缩。

该程序在Debian 9.2上使用Duplicati 2.0.2.1进行测试

Duplicati安装

https://www.duplicati.com/download下载最新版本

该软件需要几个库才能工作,主要是单声道库。 安装软件最简单的方法是让它通过dpkg安装失败,然后使用apt-get安装缺少的软件包:

sudo dpkg -i duplicati_2.0.2.1-1_all.deb
sudo apt-get --fix-broken install

请注意,安装程序包在第一个实例上失败,然后我们使用apt来安装依赖项。

启动守护进程:

sudo systemctl start duplicati.service

如果您希望在操作系统使用时自动启动:

sudo systemctl enable duplicati.service

要检查服务正在运行:

netstat -ltn | grep 8200

你应该收到这样一个回应:

完成这些步骤之后,您应该能够运行浏览器并访问http:// localhost:8200上的本地Web服务

创建一个备份作业

转到“添加备份”以配置新的备份作业:

设置作业的名称和密码以进行加密。 你将需要密码来恢复文件,所以选择一个强大的密码,并确保你不要忘记它:

设置目的地:您将要存储备份文件的目录:

选择要备份的源文件。 我将选择这个例子的桌面文件夹:

根据需要指定过滤条件和排除条件:

配置日程安排,或者如果您希望手动运行它们,则禁用自动备份:

我喜欢在使用USB驱动器目标时使用手动备份,并且如果我有一台服务器通过SSH或基于云的目标发送备份,则会进行计划。

指定要保留的版本,以及上传卷大小(每个部分文件的大小):

最后,你应该看到在这样的总结中创建的工作:

运行备份

在上次看到的摘要中的“主页”下,单击“立即运行”以启动备份作业。 屏幕顶部会显示一个进度条。

完成备份后,您可以在目标文件夹中看到一组名为如下所示的文件:

duplicati-20171206T143926Z.dlist.zip.aes
duplicati-bdfad38a0b1f34b5db56c1de166260cd8.dblock.zip.aes
duplicati-i00d8dff418a749aa9d67d0c54b0e4149.dindex.zip.aes

块的大小将是上传卷大小选项中指定的大小 。 文件被压缩,并使用先前设置的密码进行加密。

一旦完成,您将在摘要中看到最后一次备份和大小:

在这种情况下,它只有1MB,因为我拿了一个测试文件夹。

还原文件

要还原文件,只需访问http:// localhost:8200中的Web管理,进入“还原”菜单并选择备份作业名称。 然后选择要恢复的文件,然后点击“继续”:

选择还原文件或文件夹和还原选项:

恢复将开始运行,在用户界面顶部显示进度条。

修复备份目标

如果使用USB驱动器执行备份,最好在/ etc / fstab中指定驱动器的UUID,以便它自动挂载到/ mnt / backup目录(或您选择的目录)。

为此,请连接您的驱动器并检查UUID:

sudo blkid

...
/dev/sdb1: UUID="4d608d85-e138-4546-9f22-4d78bef0b6a7" TYPE="ext4" PARTUUID="983a72cb-01"
...

并复制UUID以在/ etc / fstab文件中包含一个条目:

...
UUID=4d608d85-e138-4546-9f22-4d78bef0b6a7  /mnt/backup  ext4  defaults  0  0
...

远程访问GUI

默认情况下,Duplicati只在本地主机上监听,并且是这样的。 但是,它包括添加密码并可从网络访问的可能性:

不建议使用此设置,因为Duplicati还没有SSL功能。 如果您需要远程使用备份GUI,我会推荐使用SSH隧道。

要做到这一点,首先启用SSH服务器,如果你还没有它,最简单的方法是运行:

sudo tasksel

在Duplicati主机上运行SSH服务器之后。 从要连接到GUI的位置转到计算机并设置隧道

让我们考虑一下:

  • Duplicati备份及其GUI在远程主机192.168.0.150(我们称之为服务器)上运行。
  • 服务器上的GUI正在监听端口8200。
  • jorge是服务器中的有效用户名。
  • 我将从本地端口12345上的主机访问GUI。

然后打开我在客户端上运行的SSH隧道:

ssh -f jorge@192.168.0.150 -L 12345:localhost:8200 -N

使用netstat可以检查端口是否为localhost打开:

netstat -ltn | grep :12345

tcp        0      0 127.0.0.1:12345         0.0.0.0:*               LISTEN     
tcp6       0      0 ::1:12345               :::*                    LISTEN

现在我可以通过从客户端浏览器访问http://127.0.0.1:12345访问远程GUI

最后,如果你想关闭连接到SSH隧道,你可以杀死SSH进程。 首先识别PID:

ps x | grep "[s]sh -f"

26348 ?        Ss     0:00 ssh -f jorge@192.168.0.150 -L 12345:localhost:8200 -N

杀了它:

kill -9 26348

或者你可以在一个整体中做到这一点:

kill -9 $(ps x | grep "[s]sh -f" | cut -d" " -f1)

其他备份存储库选项

如果您希望将备份存储在远程服务器而不是本地硬盘驱动器上,Duplicati有多个选项。 标准协议如:

  • FTP
  • OpenStack对象存储/ Swift
  • SFTP(SSH)
  • WebDAV的

还有更多的专有协议,比如:

  • 亚马逊云端硬盘
  • 亚马逊S3
  • 天蓝
  • B2云存储
  • Box.com
  • Dropbox的
  • Google云端存储
  • Google云端硬盘
  • HubiC
  • Jottacloud
  • mega.nz
  • 微软一个驱动器
  • 微软One业务驱动
  • 微软Sharepoint
  • OpenStack简单存储
  • Rackspace CloudFiles

对于FTP,SFTP,WebDAV就像设置服务器主机名或IP地址一样简单,添加凭证,然后使用整个以前的过程。 因此,我不相信这是描述他们的任何价值。

但是,由于我发现对于具有基于云的备份的个人事务很有用,因此我将介绍Dropbox的配置,该配置使用与Google Drive和Microsoft OneDrive相同的过程。

Dropbox的

让我们创建一个新的备份作业,并将目的地设置为Dropbox。 所有的配置都是一样的,除了应该像这样设置的目标:

从下拉菜单中设置“Dropbox”并配置目标文件夹后,单击OAuth链接以设置身份验证。

将出现一个弹出窗口,您可以登录到Dropbox(或Google Drive或OneDrive,具体取决于您的选择):

登录后,系统会提示您允许Duplicati应用程序访问您的云存储:

完成上一个过程后,AuthID字段将自动填入:

点击“测试连接”。 在测试连接时,您将被要求在不存在的情况下创建文件夹:

最后会通知您连接成功:

如果您访问您的Dropbox帐户,您将在定义的文件夹下看到与我们以前见过的格式相同的文件:

结论

Duplicati是一个多平台,功能丰富,易于使用的个人电脑备份解决方案。 它支持各种各样的备份存储库,使其成为适应大多数个人需求的通用工具。