直接使用duplicity,是否可以有多个备份计划?

直接使用duplicity,是否可以有多个备份计划?

如果我理解正确的话,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 备份形式如下:

  1. 制作一个包含 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 运行脚本时正常工作。如果您手动运行脚本,您可以选择不使用密钥,前提是您准备在每次运行脚本时都输入密码。

  2. 制定排除列表(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 排除我们之前未提及的所有内容,即**

  3. 通过创建以下文件来使用 Cron 安排此操作,以便/etc/cron.daily每天运行一次:

    #!/bin/bash
    myBackup.sh
    

定期备份我的完整主文件夹,就像我现在使用 deja-dup 一样,即每当我连接外部驱动器并且需要备份时。

根据您的喜好调整备份命令。要在连接外部驱动器时执行备份,您可以例如:

  • 放入一个脚本来/etc/cron.hourly检查备份的状态(例如,从运行备份时创建的日志文件中读取日期),如果今天没有完成备份,脚本将检查驱动器是否已安装。如果驱动器已安装,则执行备份。

  • 写一个插入备份驱动器时运行的服务

手动将不同的文件夹集备份到远程服务器(Strato HiDrive,因此 ftp、smb 或 rsync)(理想情况下只是我发出的“触发”命令),因为我需要在具有快速互联网连接的地方才能执行此操作(我这里说的是约 200 GB)

这个很简单:只需创建一个运行 Duplicity 并使用如上所述的排除文件的脚本。

祝你好运!Duplicity 是一款功能非常丰富且稳定的软件。如果你不习惯编写 bash 脚本,那么使用它可能会有点困难,但我肯定会说它值得一试,可以满足你的需求。

如果此答案中缺少您需要的任何信息,请告诉我。

相关内容