У меня есть снимок btrfs /
и я хочу rsync
с моей текущей папкой /
. Как форма "отката", если хотите.
Мой вопрос заключается в том, какую папку мне следует избегать, например, я должен использовать опцию -x
чтобы rsync не переходил к другим подобъемам, но я должен также исключить папку tmp
, чтобы предотвратить сбои системы, что-то еще? как насчет /var, /run, /dev?
1 ответ
Я не уверен, хотите ли вы сделать это с live cd и т.д. Или с работающей системой, поэтому отвечаю за оба.
Что нужно учитывать в обоих случаях:
a) Используйте соответствующие параметры для rsync, чтобы не только синхронизировать файлы, но и такие вещи, как дата изменения, маска прав доступа, Xattrs, информация Selinux, расширенные списки ACL, жесткие ссылки ... все, что он может сделать. Чтение всего списка вариантов один раз, чтобы выбрать все необходимое, не плохо.
б) Снимок Btrfs одного тома включает только этот том. Если у вас есть, например. отдельный загрузочный раздел, смонтированный в /boot, он не покрывается резервной копией, поэтому он не должен быть синхронизирован => "-x" флаг. Хотя в процессе, описанном ниже, вы все равно получите вид без установленных точек крепления.
Если сделано с живого CD:
a) Папки lime /tmp (если контент вообще находится в реальной файловой системе вместо виртуальной во время выполнения) не требуют дополнительного рассмотрения. Просто переписать их.
б) Виртуальных вещей, таких как большинство записей /dev (большинство, потому что /dev может содержать некоторые реальные файлы), не будет, если смотреть с живого CD => нет проблем. Несколько реальных файлов (если таковые имеются) могут быть синхронизированы с rsync.
Больше ничего не приходит мне на ум по этому делу.
Если сделано в работающей системе:
a) Чтобы не вмешиваться в /dev и тому подобное, вам понадобится "чистый" вид вашей файловой системы Btrfs, в дополнение к /, без дополнительных монтируемых вещей. Вы можете получить его с помощью mount --bind ...
с некоторой собственной папкой. Примите это как пункт назначения синхронизации.
б) Просто запись в файл, открытый какой-либо другой программой, может привести к проблемам, особенно к файлу, который постоянно записывается, например, к файлам журнала. Удаление старого файла и создание нового с собственным содержимым позволяет другой программе получить доступ к своему старому файлу, пока он не закроется. rsync делает это по умолчанию, но обратите внимание, чтобы не передавать такие параметры, как --inplace
!
c) Как только rsync завершит работу, перезагрузите компьютер. Вся ситуация достаточно хитрая, поэтому минимизируйте риск того, что какой-то процесс смешает старые и новые данные и сделает что-то странное во время работы.