使用 duplicity 备份远程目录

使用 duplicity 备份远程目录

是否可以将远程目录备份到本地路径?

在命令中使用两个 URL 会引发

Two URLs specified.  One argument should be a path.

仅使用一个遥控器,但指定full选项会引发

--full option cannot be used when restoring or verifying

我尝试过

duplicity full ssh://username@remote:XXXX/home/username /media/removabledrive/

其中 XXXX 是 ssh 的自定义端口。

答案1

为什么不直接使用 sshfs、cifs、nfs 或者您选择的其他工具将远程路径挂载到本地文件系统树中呢?

如果你这样做,你可以为 duplicity 指定两个本地路径,它不应该注意到其中一个路径实际上位于远程节点上(确保你选择以你想要的方式导出权限等属性的远程文件系统,同时确保使用正确的挂载选项 - 这对于 samba/cifs 尤其重要,因为它的默认值不是很 unix-ish)。

对于 Debian 或 Debian 衍生产品(例如 Ubuntu):

apt-get 安装 sshfs

然后:

mkdir -p /mnt/remote &&
sshfs 用户名@remote:/home/用户名 /mnt/remote

成功后,从备份/mnt/remote到本地备份路径,然后

卸载/mnt/remote

还请检查man sshfs哪些选项可能适用于您的用例。

答案2

Duplicity 不支持远程源,因此如果没有@blubberdiblub 所建议的技巧就无法做到这一点。

当我发现这个问题时,我感到很失望,尽管他们并没有将此称为问题:https://answers.launchpad.net/duplicity/+question/143932

答案3

据我所知,提供远程路径后跟本地路径会强制恢复数据,默认情况下应该是完整恢复。

“full”参数仅对进行备份有效:

   full   Indicate full backup.  If this is set, perform full backup  even
          if signatures are available.

   incr   If  this  is  requested an incremental backup will be performed.
          Duplicity will abort if old signatures  cannot  be  found.   The
          default is to switch to full backup under these conditions.

因此此命令:将对 /home/me 进行完整备份到远程主机/some_dir。Full/incr 仅适用于进行备份,不适用于恢复。duplicity full /home/me scp://[email protected]/some_dir

如果您只想恢复某个路径,那么使用:

--file-to-restore path 该选项可以在恢复模式下给出,导致只恢复路径而不是备份档案的全部内容。路径应该相对于备份目录的根目录给出。

根据此处的文档:http://manpages.ubuntu.com/manpages/oneiric/man1/duplicity.1.html,发生的事情是:

恢复时,duplicity 按顺序应用补丁,因此删除(例如)完整备份集可能会导致相关的增量备份集无法使用。

另外,最后要说一下“ssh://”部分。尝试使用 scp/sftp,根据文档:

关于 SSH/SCP 协议的说明

   Duplicity specifies two protocol names for the same protocol.  This  is
   a  known  and  user-confusing issue.  Both use the same protocol suite,
   namely ssh through its' utility routines scp and sftp.  Older  versions
   of  duplicity used scp for get and put operations and sftp for list and
   delete  operations.   The  current  version  uses  sftp  for  all  four
   supported  operations, unless the --use-scp option is used to revert to
   old behavior.  The change was made to all-sftp in order  to  allow  the
   remote system to chroot the backup, thus providing better security.

答案4

查看此处的文档:http://duplicity.nongnu.org/docs.html 看起来你应该发出这个:

duplicity full ssh://username@remote:XXXX//home/username /media/removabledrive/

注意 host:port 后面的双 //

相关内容