如果我理解正确的话,duplicity 是用于创建备份的命令行工具,并且可以独立使用(即不涉及 DejaDup)来创建备份。
是否可以设置具有不同时间表和源/目标的多个备份计划?我尤其希望:
- 定期备份我的完整的主文件夹就像我现在用 deja-dup 一样,即每当我连接外部驱动器时和需要备份。
- 手动将不同的文件夹集备份到远程服务器(Strato HiDrive,因此 ftp、smb 或 rsync)(理想情况下只是我发出的“触发”命令),因为我需要在具有快速互联网连接的地方才能执行此操作(我这里说的是约 200 GB)
我认为这只需要一些时间来设置远程备份的不同命令。本地备份可以保留在 DejaDup 中。但 duplicity 能处理这个问题吗?或者它会与不同的备份混淆吗?另外:远程备份的性能会如何?实际的 diff+copy 机制在远程情况下将如何工作?
我问这个问题的原因是德贾杜普 我只有一个备用计划,时光倒流 仅支持本地副本(所以我必须在本地安装 ftp 并在那里进行 diff,这似乎浪费带宽)并且快照 使用硬链接因此需要在目标)但 duplicity 似乎能够做我想做的事……
答案1
总体来说,答案是肯定的。Duplicity 非常灵活,您可以以不同的方式备份系统的不同部分。不过,关键在于掌握 duplicity 命令行。
答案2
是否可以设置具有不同时间表和源/目标的多个备份计划?
是的。在 Duplicity 中,您将为每个计划运行一个命令。Duplicity 没有内置调度程序,而是使用克罗恩. 最简单的由 Cron 安排的 Duplicity 备份形式如下:
制作一个包含 Duplicity 命令的 bash 脚本:
#!/bin/bash # Filename: myBackup.sh duplicity --full-if-older-than 1M \ --exclude-filelist excludeList.txt \ / sftp://[email protected]/some_dir
此脚本将每月进行一次完整备份。否则,它将进行增量备份。它将备份根目录 (
/
),但将根据以下列表排除/包含。它将在 sftp 服务器上保存备份(请确保安装 ssh 密钥以使此操作在 cron 运行脚本时正常工作。如果您手动运行脚本,您可以选择不使用密钥,前提是您准备在每次运行脚本时都输入密码。制定排除列表(
exludeList.txt
):**[Cc]ache* **[Hh]istory* **[Ss]ocket* **[Tt]humb* **[Tt]rash* **.kvm **.local/share/icons **.rpmdb **.thumbnails **_NOBACKUP* /home/user/VirtualBox VMs/** /home/user/Downloads/** + /home/user + /var/www + /root + /etc **
在我们的 Duplicity 命令中,我们声明源是
/
,如果您没有排除文件,则意味着根目录下的所有内容都包含在备份中。双星号
**
替代每个文件名或者路径。首先,我们列出要排除的文件。即使它们包含在我们告诉 Duplicity 包含的任何目录中,这些文件也将被排除。然后我们告诉要包含哪些目录(以 开头的行+
)。最后,我们告诉 Duplicity 排除我们之前未提及的所有内容,即**
。通过创建以下文件来使用 Cron 安排此操作,以便
/etc/cron.daily
每天运行一次:#!/bin/bash myBackup.sh
定期备份我的完整主文件夹,就像我现在使用 deja-dup 一样,即每当我连接外部驱动器并且需要备份时。
根据您的喜好调整备份命令。要在连接外部驱动器时执行备份,您可以例如:
放入一个脚本来
/etc/cron.hourly
检查备份的状态(例如,从运行备份时创建的日志文件中读取日期),如果今天没有完成备份,脚本将检查驱动器是否已安装。如果驱动器已安装,则执行备份。写一个插入备份驱动器时运行的服务。
手动将不同的文件夹集备份到远程服务器(Strato HiDrive,因此 ftp、smb 或 rsync)(理想情况下只是我发出的“触发”命令),因为我需要在具有快速互联网连接的地方才能执行此操作(我这里说的是约 200 GB)
这个很简单:只需创建一个运行 Duplicity 并使用如上所述的排除文件的脚本。
祝你好运!Duplicity 是一款功能非常丰富且稳定的软件。如果你不习惯编写 bash 脚本,那么使用它可能会有点困难,但我肯定会说它值得一试,可以满足你的需求。
如果此答案中缺少您需要的任何信息,请告诉我。