Назад | Перейти на главную страницу

rdiff-backup восстановление каталогов без подкаталогов

Есть ли способ восстановить резервные копии, созданные 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 часов, после чего я теряю коммутируемое соединение. Это также не работает наоборот: сначала восстанавливаются подкаталоги, а затем основной каталог, так как подкаталоги также восстанавливаются снова.

Я знаю, это неубедительно, но я должен снова ответить на свой вопрос: Хитрость заключается в том, чтобы исключить подкаталог с помощью --exclude **var/web1. Я до сих пор не знаю, почему это работает, но если я узнаю, я отправлю ответ здесь. Кстати, я получил ответ из списка рассылки Rdiff-backup: http://lists.gnu.org/archive/html/rdiff-backup-users/2010-02/msg00017.html

Если вы правильно указали пути, это не должно быть проблемой. Действительно ли локальная папка / каталог и удаленный / каталог совпадают? Иногда вы теряете ценную информацию, слишком запутывая свои примеры.

В любом случае, важная проблема заключается в том, что --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.