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