[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: tar incremental archive



On Mon, Jun 22, 2015 at 02:23:21PM +0300, tarasca wrote:
> Доброго времени.
> При изучении tar возникло пару вопросов по инкрементальным архивам,
> буду весьма признателен за подсказки.
> 
> 1. Из каталога "А" cоздаю полный архив А0.tar и снапшот А.snap
> (который задаётся --list-incremental). Добавляю в каталог "А" файл,
> создаю (здесь и далее используя _копию_ снапшота) инкрементальный
> А1.tar. Далее в процессе работы А1.tar периодически пересоздаётся,
> А0.tar не трогается (предположим, он очень большой, лежит далеко в
> сети, а изменения даже в сумме весьма мелки по сравнению с полным
> архивом).
> Удаляю каталог "А", восстанавливаю из А0.tar и А1.tar.
> Пытаюсь сделать инкрементальный архив восстановленного каталога
> (фактически сравниваю "А" с состоянием на момент создания А0.tar,
> ожидая получить A1.tar), но он совпадает с полным, очевидно дело в
> каких-то технических данных (номера/атрибуты инодов?) снапшота,

У каталогов изменились inode numbers. Алгоритм прост до безобразия
насколько я понимаю.
У нас есть список каталогов и их inode numbers. У обычных файлов смотрим
на ctime: если он новее, чем дата создания предыдущего архива файл менялся
после того - его бэкапим. У каталогов проверяем соответствие имя - inode
number, сравнивая с файлом снапшота. Если изменилось - бэкапим все в 
каталоге с подкаталогами

> которые не совпадают с таковыми у восстановленого каталога.
> Чтобы не закачивать наново А0.tar я собираюсь ставить костыль:
> создать новый снапшот после восстановления из А0.tar (прогоняю
> обычную архивацию в /dev/null) и из его копий в дальнейшем лепить
> инкременты A1.tar. Можно ли сделать лучше/правильнее?
> 2. Ну и общесистемное: чем неприятным грозят инкрементальные бэкакпы
> средствами tar, если за пределы наитивных ФС я выходить не планирую?

--listed-incremental=SNAPSHOTFILE и --level=N читайте в info tar.
Работает сие естественно на posix-совместимых ФС. На ntfs например работает
вряд ли. Нужны статические номера inode и posix-овое поведение ctime. 

Это если про gnu tar.


Reply to: