有没有办法恢复 rdiff-backup 生成的备份但跳过子目录?假设我已经备份了/dir
、/dir/subA
和/dir/subB
,我只想恢复/dir
和/dir/subB
,跳过/dir/subA
。我试过了,rdiff-backup -r now --exclude /dir/subA /dir server::/dir
但 --exclude 似乎被忽略了,尽管它正在被解析。
我为什么要这样做呢?因为,我无法/dir
一次性恢复全部内容,因为它太大了,无法在 24 小时内恢复,之后我就会失去拨号连接。反过来也不行,先恢复子目录,然后恢复主目录,因为子目录也会再次被恢复。
答案1
假设您正确指定了路径,那应该不是问题。本地文件夹 /dir 和远程 /dir 实际上是同一路径吗?有时,当您过度混淆示例时,您会丢失有价值的信息。
无论如何,重要的问题是 --exclude 应该覆盖您要恢复到的目的地的完整路径。我将尝试使用一个例子来说明。
$ rdiff-backup server::/original/data/ /local/backup/
$ ls -F /local/backup/
file rdiff-backup-data/ subA/ subB/
$ rdiff-backup -r now --exclude /restore/point/subA /local/backup/ server::/restore/point/
$ ssh server
$ ls -F /restore/point
file subB/
当然,还有一种偷懒的方法,简单地执行--exclude'**/subA',假设目录结构下面没有更多的subA。
答案2
我知道,这很无趣,但我必须再次回答我自己的问题:诀窍是使用排除子目录--exclude **var/web1
。我仍然不知道为什么这样做有效,但如果我找到答案,我会在这里发布答案。顺便说一句,我从 Rdiff-backup 邮件列表中找到了答案:http://lists.gnu.org/archive/html/rdiff-backup-users/2010-02/msg00017.html