使用Duplicati备份Debian,Ubuntu,Linux Mint桌面和服务器

Duplicati是功能齐全的开源备份软件,可以在Linux,MacOS,Windows和Synology上运行。 它允许您以加密形式将本地文件和目录备份到云(例如Amazon S3,Dropbox,Google Drive,OneDrive等),并安排自动备份。 本教程将向您展示如何在Debian,Ubuntu和Linux Mint上安装和使用Duplicati。

您也可以在基于Debian / Ubuntu的Linux发行版中应用本教程,例如MX Linux,Linux Lite,Elementary OS等。

复制功能

  • 免费和开源(GPL许可)
  • 跨平台:可在Linux,MacOS,Windows和Synology上运行。
  • 可以压缩和加密备份。
  • 通过增量备份节省空间。
  • 支持多种云存储服务,例如Dropbox,Google Drive,OneDrive,box.com,Mega,Amazon S3,BlackBlaze,Rclone和Sia分散存储网络。
  • 适用于SSH / SFTP,WebDAV,FTP。
  • 支持本地备份,例如外部USB设备,NAS(网络附加存储)和Samba共享文件夹。
  • Duplicati使用标准组件,例如rdiff,zip,AESCrypt和GnuPG。 即使Duplicati不可用,这也允许用户恢复备份文件。
  • Duplicati具有图形用户界面和命令行界面,因此您可以在台式机和服务器上使用它。
  • 内置的备份调度程序和自动更新程序。
  • 中断的备份可以恢复。
  • 它可以检测损坏的备份。
  • 响应式Web界面使您可以从任何地方(包括移动电话)访问Duplicati。

Duplicati是Duplicity备份软件的C#重新实现。

如何在Debian,Ubuntu,Linux Mint Desktop或服务器上安装Duplicati

Duplicati未包含在软件存储库中,因此我们需要访问Duplicati官方网站并下载 .deb 文件。 尽管v2.0仍处于测试阶段,但自2017年以来使用它是安全可靠的。

如果使用无头服务器,请使用以下命令在终端中下载Duplicati。

wget https://github.com/duplicati/duplicati/releases/download/v2.0.4.23-2.0.4.23_beta_2019-07-14/duplicati_2.0.4.23-1_all.deb

下载完成后,打开文件管理器并转到下载目标目录。 要安装此软件,只需右键单击 .deb 文件并选择 Open With Software Install 从上下文菜单中。

在Ubuntu上安装duplicati

如果上下文菜单不提供此选项,则可以从命令行安装此.deb文件。 打开终端窗口,然后转到下载目标目录。 例如,我将文件下载到了 Downloads 文件夹位于我的主目录下,因此我运行以下命令。 代字号(〜)代表主目录。

cd ~/Downloads/

然后使用APT软件包管理器按如下所示进行安装。 的 ./ 代表当前目录。

sudo apt install ./duplicati_2.0.4.23-1_all.deb

提示:这是我想向Linux初学者展示的一个技巧。 输入后 sudo apt install ./duplicati,您可以按 Tab 键。 Linux将自动为您完成文件名。

重复服务器

Duplicati主要用C#编写,因此APT软件包管理器将自动安装Mono(这是一个.NET兼容框架),以便在Linux上运行Duplicati。

Duplicati作为服务安装,这意味着它在后台运行。 但是,duplicati在安装后不会自动启动。 您可以通过在终端中发出以下命令来启动它。

sudo systemctl start duplicati

运行以下命令以在引导时启用自动启动。

sudo systemctl enable duplicati

现在,您可以使用以下命令检查其状态:

systemctl status duplicati

无头复制品

提示:如果上述命令没有立即退出,则可以按Q键来获得对终端的控制。

如何使用Duplicati

启动duplicati后,它会监听localhost接口的端口8200,因此您可以通过键入以下内容来访问Duplicati Web界面 127.0.0.1:8200 在网络浏览器地址栏中。 (如果使用远程无头服务器,请在本文结尾处了解如何设置Apache / Nginx反向代理并启用HTTPS。)

首先,选择您的计算机具有多个帐户还是单个帐户。

启动重复服务器

点击 Add backup 创建您的第一个备份并选择如何添加备份。 如果您以前从未使用过Duplicati,则需要选择默认选项: Configure a new backup

复制配置新备份

在下一页上,为备份命名。 您可以使用任何喜欢的名称,例如文件夹名称加上备份日期。 如果要将备份发送到云存储提供商,建议启用加密。 您可以使用默认的加密方法: AES-256。 点击 Generate 按钮创建一个强密码,用于加密备份。 要解密备份时,还需要使用此密码。

重复AES 256加密

因此,将密码短语存储在安全的地方(例如在密码管理器中)非常重要。 如果丢失此密码,将无法恢复备份。

下一步是选择存储数据的位置。 在本教程中,我选择Dropbox。 然后在Dropbox中命名将用于存储数据的路径。

复制备份目的地保管箱

接下来,点击 AuthID 链接。 您将被带到Dropbox的网站上授予权限,因此Duplicati可以将数据发送到您的Dropbox帐户。

重复保管箱Oauth

允许Duplicati访问您的Dropbox帐户后,AuthID凭据将自动放入Duplicati Web界面的AuthID字段中。 您现在可以单击 Test connection 按钮,以确保Duplicati可以访问备份目标并创建文件夹。

在下一步中,选择计算机上要备份的文件夹。 我选择备份主文件夹。

重复的源数据

您可以在“排除”部分中排除隐藏文件,系统文件和临时文件,这正是我的主文件夹所需要的。

重复排除子目录过滤器

您也可以单击添加过滤器链接以排除特定的文件或子文件夹。 例如,我不想将我的VirtualBox机器备份到Dropbox,所以我创建了一个过滤器以排除名称包含“ VirtualBox”的目录。

duplicati排除名称包含的目录

在计划页面上,您可以设置备份运行的频率。 如果禁用调度程序,则每次都需要手动运行备份,这不是我建议的。 我只是使用默认设置。 如果在服务器上使用Duplicati,则可能要在服务器上的活动较少时运行备份。

重复时间表

如果您使用台式机或笔记本电脑,则Duplicati如果错过了计划的备份,则在打开计算机时将运行备份。 对于始终在线的服务器,Duplicati在计划的时间运行备份。

在最后一步中,您可以将卷大小的值保留为默认值。 然后,您可以选择备份保留策略。 我选择保留所有备份。 不要忘记保存您的配置。

重复的卷大小

手动运行备份

您可以等待Duplicati在计划的时间运行备份,或单击“立即运行”链接并立即运行备份。

重复运行备份

您还可以导出配置,以便能够在另一个Duplicati实例上还原备份。

复制导出配置

如何还原备份

我还在另一台计算机上安装了Duplicati,并将在第二台计算机上还原备份。 在“复制”主屏幕上,单击左侧的“还原”按钮,然后选择“从配置还原”。

重复还原

在下一页上载配置文件,然后输入密码。 单击导入。

从备份配置还原

接下来,它将显示备份配置。 您可以单击测试连接按钮以查看其是否有效。

重复还原备份

在下一页上,您可以看到加密选项。 请点击 Next

重复密码

如果您在下一页看到“找不到”错误,请不要惊慌。 您需要在搜索字段中输入文件夹路径,然后单击“搜索”按钮,就能在大矩形框中选择文件夹。 单击继续按钮。

复制还原文件

最后,配置还原选项。 我选择将文件还原到原始位置,并且倾向于覆盖现有文件。 让我解释一下这意味着什么。

  • 假设我的第二台计算机有两个名为 /home/linuxbabe/film//home/linuxbabe/videos/
  • 备份仅包含 /home/linuxbabe/videos/ 夹。
  • 如果我有一个新的视频 /home/linuxbabe/videos/ 文件夹在我的第二台计算机上,还原过程将删除该新视频。
  • /home/linuxbabe/film/ 第二台计算机上的文件夹将完好无损。

复制还原选项

配置还原选项后,单击“还原”按钮。

如何为Duplicati设置Apache / Nginx反向代理

如果将Duplicati安装在远程无头服务器上,则可能要从域名访问Web界面并启用HTTPS。 我们将使用Apache或Nginx Web服务器设置反向代理。

阿帕奇

如果您更喜欢使用Apache Web服务器,请从软件存储库安装apache2软件包。

sudo apt install apache2

启动Apache并启用自动启动。

sudo systemctl start apache2

sudo systemctl enable apache2

要将Apache用作反向代理,我们需要启用 proxy 模块和标头模块。

sudo a2enmod proxy proxy_http headers proxy_wstunnel

现在,使用命令行文本编辑器(例如Nano)为Duplicati创建虚拟主机文件。

sudo nano /etc/apache2/sites-available/duplicati.conf

将以下行复制并粘贴到文件中。 更换 duplicati.example.com 您的真实域名。 您还应该在DNS管理器中为此子域添加DNS A记录。

<VirtualHost *:80>
   ServerName duplicati.example.com
   ErrorDocument 404 /404.html

   ProxyPass / http://127.0.0.1:8200/
   ProxyPassReverse / http://127.0.0.1:8200/

   ErrorLog ${APACHE_LOG_DIR}/duplicati_error.log
   CustomLog ${APACHE_LOG_DIR}/duplicati_access.log combined

</VirtualHost>

保存并关闭文件。 然后启用此虚拟主机。

sudo a2ensite duplicati.conf

重新启动Apache

sudo systemctl restart apache2

现在您可以通过以下方式访问Web界面 duplicati.example.com。 在网络界面中执行任何操作之前,我们应启用HTTPS。

Nginx的

如今,Nginx作为Web服务器和反向代理变得越来越流行。 使用以下命令在Debian,Ubuntu或Linux Mint上安装Nginx。

sudo apt install nginx

启动Nginx并启用自动启动。

sudo systemctl start nginx

sudo systemctl enable nginx

现在,使用命令行文本编辑器(例如Nano)为Duplicati创建虚拟主机文件。

sudo nano /etc/nginx/conf.d/duplicati.conf

将以下行复制并粘贴到文件中。 更换 duplicati.example.com 您的真实域名。 您还应该在DNS管理器中为此子域添加DNS A记录。

server {
  listen 80;
  server_name duplicati.example.com;

  access_log /var/log/nginx/duplicati_access.log;
  error_log /var/log/nginx/duplicati_error.log;
  location / {
     proxy_pass http://127.0.0.1:8200;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

保存并关闭此文件。 然后测试Nginx的配置。

sudo nginx -t

如果测试成功,请重新加载Nginx。

sudo systemctl reload nginx

现在,在浏览器的地址栏中输入 duplicati.example.com 并且您应该能够访问Duplicati Web界面。 在网络界面中执行任何操作之前,我们应启用HTTPS。

如何启用HTTPS(对于无头服务器)

为了在您通过域名访问Duplicati Web界面时对HTTP流量进行加密,我们可以通过安装由Let’s Encrypt颁发的免费TLS证书来启用HTTPS。 运行以下命令以在Debian,Ubuntu或Linux Mint上安装Let’s Encrypt客户端(certbot)。

sudo apt install certbot

如果使用Apache,则还需要安装Certbot Apache插件。

sudo apt install python3-certbot-apache

并运行此命令以获取并安装TLS证书。

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d duplicati.example.com

如果您使用Nginx,则安装Certbot Nginx插件。

sudo apt install python3-certbot-nginx

接下来,运行以下命令以获取并安装TLS证书。

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d duplicati.example.com

哪里

  • --nginx:使用nginx插件。
  • --apache:使用Apache插件。
  • --agree-tos:同意服务条款。
  • --redirect:通过301重定向强制HTTPS。
  • --hsts:将Strict-Transport-Security标头添加到每个HTTP响应。 强制浏览器始终对域使用TLS。 防御SSL / TLS剥离。
  • --staple-ocsp:启用OCSP装订。 有效的OCSP响应被装订到服务器在TLS期间提供的证书。

现在应该获得证书并自动安装。

重复https

您可以通过HTTPS访问Duplicati Web界面(https://duplicati.example.com)。 您应该立即在Web界面中为Web界面设置密码。 Settings 菜单。

重复的Web界面密码验证

包起来

我希望本教程可以帮助您安装并使用Duplicati来备份Debian,Ubuntu或Linux Mint系统。 与往常一样,如果您发现这篇文章很有用,请订阅我们的免费新闻通讯以获取更多提示和技巧。 保重🙂

Sidebar