如何正确恢复使用 duplicity 备份的目录

如何正确恢复使用 duplicity 备份的目录

当我使用 duplicity 备份目录时,我只能恢复目录内的内容,而不能恢复整个目录本身。以下是我所得到的。

我有一个要备份的文件夹:/var/www/wordpress,其内容是:

root@virtualbox:~# ls /var/www/wordpress/
index.php        wp-admin              wp-content         wp-load.php      wp-signup.php
license.txt      wp-blog-header.php    wp-cron.php        wp-login.php     wp-trackback.php
readme.html      wp-comments-post.php  wp-includes        wp-mail.php      xmlrpc.php
wp-activate.php  wp-config-sample.php  wp-links-opml.php  wp-settings.php

我按照以下方式备份:

duplicity full -v2 --no-encryption /var/www/wordpress/ rsync://[email protected]//backup/worpdress

但是当我尝试使用以下命令恢复它时:

duplicity restore --no-encryption --file-to-restore wordpress rsync://[email protected]//backups/wordpress /var/www/wordpress

我收到一个错误wordpress not found in archive - no files restored.。如果我使用 duplicity 列出备份中的内容,我会收到:

$ duplicity list-current-files --time 1M rsync://[email protected]//backups/wordpress
Sun Oct 15 21:43:48 2017 wp-includes/widgets/class-wp-widget-rss.php
Sun Oct 15 21:43:48 2017 wp-includes/widgets/class-wp-widget-search.php
Sun Oct 15 21:43:48 2017 wp-includes/widgets/class-wp-widget-tag-cloud.php
...

也就是说,所有文件都在那里,但是顶层目录wordpress/不存在作为备份文件的相对路径的根。我如何备份整个目录,以便将其包含在输出中,list-current-files并且我可以在restore操作中使用它?

此外,我知道如果我将命令重新格式化为:,我可以备份整个文件夹(包括文件夹):

duplicity full -v3 --no-encryption --include '/var/www/wordpress/' --exclude '**' / rsync://[email protected]//backups/w4

然后我得到列表输出:

Sun Oct 15 21:43:48 2017 var/www/wordpress/wp-includes/widgets/class-wp-widget-rss.php
Sun Oct 15 21:43:48 2017 var/www/wordpress/wp-includes/widgets/class-wp-widget-search.php
Sun Oct 15 21:43:48 2017 var/www/wordpress/wp-includes/widgets/class-wp-widget-tag-cloud.php

...

但这是唯一的方法吗(我不想/var/www备份整个路径)?有其他方法吗?

答案1

你几乎就到了。

尝试使用

duplicity full -v3 --no-encryption --include '/var/www/wordpress/' --exclude '**' /var/www/ rsync://[email protected]//backups/w4

这将包括 /wordpress 目录,但忽略 /var/www/ 中的所有其他内容。

相关内容