Восстановление/откат отдельных файлов или папок на btrfs

Использование исходного /tmp/backup/abc.xml.tar.gzи целевого /opt/abc/xyz/abc.xml_v9файла примера. вы можете использовать эту команду:

tar --transform='flags=r;s|abc.xml|abc.xml_v9|' -xvf abc.xml.tar.gz -C /opt

Или

tar --transform='flags=r;s/abc.xml/abc.xml_v9/' -xvf abc.xml.tar.gz -C /opt

И ты получишь

/opt/abc/xyz/abc.xml_v9

См.:

https://stackoverflow.com/questions/21790843/how-to-rename-files-you-put-into-a-tar-archive-using-linux-tar

https://www.gnu.org/software/tar/manual/html_section/tar_51.html#transform

1
08.12.2020, 17:06
2 ответа

При создании моментального снимка фактически создается подтом, к которому можно получить доступ в структуре каталогов базового тома. Оттуда, если у вас есть соответствующие права, вы можете просматривать его и копировать файлы или папки. Опция --reflinkдля копирования, похоже, не нужна для этого, хотя она приятнее, так что при копировании вещи не дублируются.

с помощью инструментов btrfs

Дополнительное создание подтома для моментальных снимков:

btrfs subvolume create.my_snapshots

Создание снимка:

btrfs subvolume snapshot -r /mnt_point /mnt_point/.my_snapshots/snapshot1

Использование флага -rделает снимок только для чтения(https://wiki.archlinux.org/index.php/btrfs#Snapshots).

Если сначала не создавать подтом и не делать его доступным только для чтения, он может просто выглядеть так:

btrfs subvolume snapshot /mnt_point /mnt_point/snapshot1

Восстановление может быть выполнено копированием файла (s )или папки (s )из моментального снимка:

cp /mnt_point/.my_snapshots/snapshot1/sub/dir/file /sub/dir/file

(Произведено изhttps://lore.kernel.org/linux-btrfs/28c839e8-4d4f-031c-ee3e-3e676e344db3@cobb.uk.net/t/#m16db5d9f29d26f41a8adb4499ffe3e220a85d9b8)

внешние инструменты (защелка для примера)

Использование внешних инструментов, таких как snapper, имеет некоторые преимущества, поскольку они делают работу со снимками более удобной и обладают полезными функциями.

Сначала необходимо создать файл конфигурации для тома (sub ), для которого нужно создать моментальные снимки :

.
snapper -c config-name create-config /mnt_point

При этом создается файл конфигурации с именем config-name. Обратите внимание, что это также обычно позволяет создавать автоматические моментальные снимки на основе времени -, а также правила для их очистки после некоторой логики. Обратите внимание, что созданные вручную моментальные снимки не удаляются по таким правилам.

Моментальный снимок можно сделать вручную с помощью:

snapper -c config-name create --description description-content

где config-name— имя ранее созданного конфига, а description-contentможно заполнить некоторым описанием снимка.

(Произведено изhttps://wiki.archlinux.org/index.php/Snapper)

Затем восстановление работает так же, как описано выше для раздела инструментов btrfs с доступом к смонтированному моментальному снимку и копированием данных.

Кроме того, Snapper предоставляет команду для этого, которую также можно использовать для отмены изменений для текущего тома в соответствии с документацией openSUSE . Однако обратите внимание, что это может привести к несоответствию данных. Также в документации Red Hat указано, что эту команду нельзя использовать с корневой файловой системой.

Теоретически файлы можно восстановить с помощью:

 snapper -c config-name -v undochange SNAPSHOT_ID..0 FILENAME

, где SNAPSHOT_ID— это идентификатор моментального снимка для восстановления из (, а ..0указывает, что файлы восстанавливаются на основной том ), а FILENAME— это путь к файлу для восстановления. Можно также указать более одного файла.

(Произведено изhttps://doc.opensuse.org/documentation/leap/archive/15.0/reference/html/book.opensuse.reference/cha.snapper.html#proc.snapper.restore.cmdl)

2
18.03.2021, 22:44

Моментальные снимки BTRFS работают на уровне подтома. Это означает, что вы можете «откатывать» части томов, но не отдельные файлы.

Поскольку подтома отображаются как каталоги в файловой системе, можно сказать, что возможен откат каталогов.

Для отката отдельных файлов я использую копию рефлинка, как показано в предоставленной вами ссылке. Тем не менее, у меня есть соответствующие подтомы, смонтированные автоматически через /etc/fstab, так что никаких неудобств.

0
18.03.2021, 22:44

Теги

Похожие вопросы