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. -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: https://lists.debian.org/[email protected]

