Как создать Snapshot-файл папки для инкрементального бэкапа при помощи tar?
Ситуация такая: нужно регулярно бэкапить папку и иногда ее восстанавливать. Делаю так: tar --create --listed-incremental=snapshot_file --file "a.1.tar" /dir
получаются архивчики:
a.0.tar (полный архив)
a.1.tar (архив с изменениями) и т.п.
Все хорошо создается до момента, пока папку не восстановят из архивов. После этого при следующем бэкапе создается не инкрементальный бэкап с изменениями относительно уже имеющихся, а полный бэкап всей папки (в чем смысла нет, т.к. те же данные есть в предыдущих архивах). В связи с этим возникла мысль после восстановления сформировать snapshot_file восстановленной папки, чтобы tar в следующий бэкап сохранил уже изменения относительно него. Возможно ли это?
Или может есть другие варианты сделать после восстановления папки бэкап изменений, а не бэкап всего целиком?
выглядит так будто tar не восстанавливает ctime и mtime у файлов... именно на их основе у вас получается снапшот.
в dos/windows у файлов есть флаг archive, который устанавливается, если он попал в архив и сбрасывается при изменении.
почему именно tar? другие архиваторы умеют гораздо больше
Вот такой:
tar --extract --ignore-failed-read --preserve-permissions --listed-incremental=/dev/null --recursion --absolute-names --file "a.0.tar"
если правильно понимаю, то -p = --preserve-permissions