Какой формат архива самый надежный?

25

Я хотел бы сделать резервные копии некоторых старых папок с документами, к которым мне нужен очень редко доступ. Для этого я хотел бы поместить их все в один архив. Поскольку это будет резервная копия, формат должен соответствовать этой цели. Итак, суть:

Какой самый надежный / надежный формат архивирования в Ubuntu?

Инго
источник

Ответы:

20

Это зависит. Двумя наиболее популярными вариантами являются tar-архивы и zip-файлы, но они оба отсутствуют:

  • .tar Ленточные архивы являются очень популярным вариантом для большинства пользователей Linux. Он сохраняет права доступа к файлам UNIX (что важно для резервного копирования) и жесткие ссылки. Он поддерживается "из коробки" на каждом дистрибутиве Linux, который я тестировал, а также на некоторых программах Windows, таких как 7-zip . Тем не менее, tar имеет несколько ограничений и недостатков для резервного варианта использования, как объяснили разработчики Duplicity . Это может быть очень медленно: даже чтобы получить список имен файлов, хранящихся в архиве, весь архив должен быть прочитан. Он также не обрабатывает подробные метаданные, которые есть в некоторых новых файловых системах.
  • .zip ZIP-файлы действуют как архив и формат сжатия. Для скорости вы можете полностью отключить сжатие. Zip-файлы лучше, чем ленточные архивы, так как в них хранится тип оглавления, позволяющий программам быстро переходить к конкретному файлу, который необходимо извлечь. Он также хранит контрольные суммы для содержимого каждого файла, чтобы облегчить обнаружение повреждения файла. Zip-файлы чрезвычайно популярны, к сожалению, они не подходят для резервного копирования Linux, потому что они не хранят простые права доступа к файлам.

Вот еще два варианта, которые, к сожалению, также отсутствуют:

  • .7z Сжатые архивы 7z имеют некоторые отличные функции, такие как шифрование и поддержка очень больших файлов. К сожалению, он не хранит разрешения для файлов UNIX, поэтому он не подходит для резервного копирования Linux.
  • .ar классические архивы UNIX являются предшественниками архивов tar и имеют те же ограничения, что и архивы tar.

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

Один из способов преодоления ограничений каждого из этих форматов состоит в том, чтобы объединить их: например, заархивировать каждый файл отдельно в архиве tar, а затем заархивировать все эти архивы в один zip-файл.

Если вы хотите действительно надежное резервное копирование, вам, вероятно, следует рассмотреть следующие решения:

  • резервное копирование непосредственно на внешний жесткий диск с одной и той же файловой системой как на исходном, так и на целевом устройствах. Это гарантирует, что вы будете хранить разрешения и метаданные каждого файла в точности так, как это было задумано. (Кроме того, владельцы и владельцы групп файлов хранятся с использованием их идентификатора пользователя и номера группы, а не их имен.)

  • Используйте программное обеспечение для создания образа и клонирования дисков, например CloneZilla . Вы не можете извлечь один файл из одной из этих резервных копий, но вы можете быть абсолютно уверены, что сохранили все, что могли.

И помните, всегда помните: вы можете быть уверены в своих резервных копиях, только если попытались их восстановить. Если худшее пришло к худшему и ваш исходный жесткий диск был полностью разрушен, можете ли вы восстановить все необходимое для восстановления на новом жестком диске? Будет ли это работать, как вы ожидаете? Попробуйте восстановить резервную копию на новый жесткий диск и попробуйте запустить с этого жесткого диска в течение нескольких дней. Если вы заметили, что чего-то не хватает, вы знаете, что ваша резервная копия была недостаточно тщательной.

Также подумайте о том, где вы храните свои резервные копии. Вам нужны хотя бы несколько резервных копий, которые находятся не в том же здании, что и исходные диски, чтобы защитить себя от кражи или пожара. Некоторые варианты для этого - облако или дом друга.

Флимм
источник
Спасибо за хорошее объяснение плюсов и минусов TAR / ZIP! Очень полезный.
Пису
9

Тарбол ( .tarфайлы) будет путь. Используйте gzipформат сжатия для меньшего сжатия, но с хорошей скоростью. bzip2намного медленнее, но обеспечивает лучшую степень сжатия. Что касается двоичных данных, то здесь нет ничего особенного.

Команда для сжатия каталога с использованием сжатия gzip:

tar czf /path/to/save/backup.tar.gz directory-to-backup

Чтобы извлечь сжатый gzip архив с сохранением прав доступа к файлам:

tar xzpf /path/to/save/backup.tar.gz

Замените zна jдля сжатия bzip2 и добавьте vперед v (например, czvfи xzpvf), чтобы напечатать имена файлов по мере их архивирования / извлечения.

Lekensteyn
источник
4
Для надежности вам не нужно сжатие. Любое повреждение сжатого архива приведет к потере всего, что следует за точкой повреждения.
Псуси
5
@psusi Это не верно для bzip2, который сжимается в куски ~ 1 МБ. Посмотрите на bzip2recover.
Phihag
@phihag, аккуратно, после всех этих лет я этого не заметил! +1. Очень хорошая причина для bzip2 над gzip.
Псуси
7

Я выбираю 7zip ( sudo apt-get install p7zip-full). Это выглядит как идеальный архиватор сжатия с моей точки зрения.

Мне не нравятся классические tar-архивы из-за их неуклюжести, так как весь tar-файл должен быть распакован (что может происходить за кадром, но все же случается) только для просмотра оглавления архива.

Иван
источник
4

Хотя он не так хорошо известен или широко используется, я был бы склонен использовать afio из-за того, как он сжимает файлы по отдельности, что делает возможным восстановление в случае повреждения. Установить через aptitude или аналогичное.

натуральный
источник
1

GZIP-архив (.tar.gz, .tgz), стандарт архивирования в Linux. Вы не можете пойти не так с этим.

Никогда в жизни у меня не было испорченного или даже хлопотного архива .tar.gz. В FlatmateRooms мы используем это для архивирования сотен тысяч изображений на сервере и всех резервных копий.

сосед
источник
0

В некоторых случаях это полезно для меня.

tar -cJvf paquete.tar.lzma folder-to-backup/
maniat1k
источник