当我使用 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/ 中的所有其他内容。