Сжатие файлов является неотъемлемой частью системного администрирования. Поиск оптимального метода сжатия требует значительных усилий. К счастью, в Linux существует множество надежных инструментов сжатия, которые облегчают резервное копирование системных данных. Здесь представлены некоторые из лучших инструментов сжатия Linux, которые можно использовать для сжатия.
1. LZ4
LZ4 – это инструмент сжатия для администраторов, которым требуется молниеносная скорость сжатия и распаковки. В нем используется алгоритм сжатия без потерь LZ4, который относится к семейству байт-ориентированных алгоритмов сжатия LZ77.
Кроме того, LZ4 оснащен высокоскоростным декодером, способным обрабатывать более 1 Гбайт/с на одно ядро процессора. Это делает его идеальным решением для пользователей, которым необходимо сжимать большие объемы данных за минимально возможное время.
Плюсы
- Чрезвычайно быстрый алгоритм сжатия и распаковки данных.
- Доступен практически во всех современных дистрибутивах Linux.
Минусы
- Приоритет отдается скорости, а не высокой степени сжатия.
- Реализация по умолчанию использует только одно ядро процессора.
2. Zstandard
Zstandard – еще один инструмент быстрого сжатия для Linux, который может быть использован как в персональных, так и в корпоративных проектах. Среди его наиболее интересных возможностей – адаптивный режим, позволяющий управлять степенью сжатия в зависимости от операций ввода-вывода.
Кроме того, Zstandard имеет возможность обмена скорости на лучшее сжатие, а также схему сжатия по словарю. Наконец, Zstandard имеет богатый API, доступный для всех основных языков программирования.
Плюсы
- Возможность регулировать соотношение скорости и сжатия на лету.
- Практически не требует системных ресурсов при сжатии.
Минусы
- Недоступна в большинстве дистрибутивов, а также не поддерживается по умолчанию в tar.
- При высоких коэффициентах сжатия декомпрессия может занимать некоторое время.
3. lzop
lzop – это надежный инструмент сжатия, использующий алгоритм сжатия Lempel-Ziv-Oberhumer (LZO). Он обеспечивает высокую скорость сжатия за счет компромисса между коэффициентами сжатия. Например, по сравнению с gzip он создает файлы несколько большего размера, но требует всего 10% времени работы процессора.
Более того, lzop может работать с резервными копиями системы различными способами, включая режим резервного копирования, режим одного файла, режим архива и режим трубы. Наконец, lzop также стремится стать универсальной заменой устаревшему алгоритму gzip. Это означает, что lzop можно использовать в скриптах, которые обычно используют gzip, просто создав псевдоним в Bash.
Плюсы
- Достойный коэффициент сжатия при хорошей скорости сжатия.
- Легко встраивается в старые архивные скрипты благодаря совместимости с gzip.
Минусы
- Не удаляет исходный файл после сжатия.
- Степень сжатия снижается тем сильнее, чем больше внимания уделяется скорости.
4. Gzip
Gzip, безусловно, является одним из самых распространенных инструментов сжатия для администраторов Linux. Он совместим со всеми программами GNU, что делает его идеальным инструментом сжатия для удаленных инженеров.
Gzip использует кодирование Лемпеля-Зива в режиме DEFLATE для сжатия файлов. Он позволяет уменьшить размер исходного кода до 90%. Кроме того, сохраняются метаданные файла, в том числе время его модификации и биты разрешения. В целом, это делает gzip отличным выбором как для опытных пользователей Linux, так и для разработчиков программного обеспечения.
Плюсы
- Имеется в каждом дистрибутиве Linux в составе GNU coreutils.
- Сохраняет все необходимые метаданные сжатого файла.
Минусы
- Не так эффективен при сжатии каталогов файлов.
- Посредственная степень сжатия и скорость по сравнению с другими алгоритмами.
5. bzip2
bzip2 – это свободный инструмент сжатия с открытым исходным кодом для Linux. Он сжимает файлы, используя алгоритм блочно-сортировочного сжатия Берроуза-Уиллера и кодирование Хаффмана. Он также поддерживает несколько дополнительных методов сжатия, таких как кодирование по длине строки, дельта-кодирование и разреженный битовый массив.
Bzip2 также может восстановление данных с мультимедийных дисков восстанавливать недостающие, поврежденные данные из имеющегося архива. В целом, bzip2 является подходящим инструментом сжатия для повседневного использования благодаря своим надежным возможностям сжатия и высокой скорости распаковки.
Плюсы
- Имеет встроенную функцию восстановления данных, которая позволяет «на лету» восстанавливать отсутствующие и поврежденные данные.
- Очень портативен. Он может работать как на старом, так и на новом оборудовании и операционных системах.
Минусы
- Посредственная степень сжатия по сравнению с Zstandard и LZ4.
- Иногда может привести к увеличению размера файла вместо его уменьшения.
6. 7zip
7zip – это порт утилиты командной строки 7-zip для Linux. Это высокопроизводительный инструмент архивирования с высокой степенью сжатия. Подобно своему аналогу для Windows он поддерживает множество популярных форматов, включая tar, xz, gzip, bzip2 и zip.
7zip также использует по умолчанию формат 7z, который обеспечивает сжатие на 30-50% лучше, чем при сжатии стандартным ZIP. Кроме того, с помощью этого инструмента можно создавать самораспаковывающиеся архивы с динамическим размером тома.
Плюсы
- Формат легко совместим с другими операционными системами, отличными от Linux.
- Поддерживает несколько форматов сжатия наряду с фирменным 7z.
Минусы
- Не сохраняет метаданные файла для сжатого архива.
- Нелегко получить в большинстве дистрибутивов Linux.
7. pigz
pigz – это надежная замена инструменту сжатия gzip. Он использует несколько ядер процессора для значительного увеличения скорости сжатия. Для реализации многопоточного процесса сжатия используются библиотеки zlib и pthread. Однако pigz не может параллельно распаковывать архивы. Следовательно, вы не сможете получить одинаковые скорости при сжатии и распаковке.
Плюсы
- Очень высокая скорость сжатия благодаря возможности использования нескольких ядер.
- Кросс-совместимость с популярным двоичным процессором сжатия gzip.
Минусы
- Может сжимать только один файл за раз.
- Медленно распаковывает файлы из-за отсутствия поддержки многопоточности в алгоритме извлечения.
8. pixz
pixz – это параллельная реализация компрессора XZ с поддержкой индексации данных. Вместо одного большого блока сжатых данных, как в xz, он создает набор блоков меньшего размера. Это упрощает произвольный доступ к исходным данным. Кроме того, pixz следит за тем, чтобы права доступа к файлам сохранялись такими, какими они были во время сжатия и распаковки.
Плюсы
- Высокая эффективность при сжатии больших блоков данных.
- При сжатии файлов задействуются все доступные ядра процессора.
Минусы
- Отсутствует возможность передачи данных непосредственно на стандартный вывод.
- Не полностью совместим со своим одноядерным вариантом: xz.
9. plzip
plzip – это инструмент для сжатия данных без потерь, который использует возможности многопоточности, поддерживаемые современными процессорами. Он построен на базе библиотеки lzlib и предоставляет интерфейс командной строки, аналогичный gzip и bzip2.
Одним из ключевых преимуществ plzip является его способность в полной мере использовать возможности многопроцессорных машин. Кроме того, разработчик алгоритма стремился сделать его максимально безопасным для данных и надежным. Это делает его привлекательным вариантом для администраторов, которым нужен высокопроизводительный инструмент сжатия в Linux, поддерживающий параллельное сжатие и пригодный для долговременного хранения данных.
Плюсы
- Использует все ядра процессора как при сжатии, так и при распаковке.
- Создан для обеспечения безопасности при работе с критическими данными.
Минусы
- Приоритет отдается скорости, а не степени сжатия.
- Для эффективного сжатия данных требуется минимальный размер файла 2 МБ.
10. XZ Utils
XZ Utils – набор инструментов сжатия для Linux, позволяющий сжимать и распаковывать файлы .xz и .lzma. В основном для сжатия используется алгоритм LZMA2, и он может легко выполнять проверку целостности сжатых данных. Поскольку этот инструмент доступен в популярных дистрибутивах Linux по умолчанию, он может быть эффективным выбором для сжатия во многих ситуациях.
Плюсы
- Создает файлы с очень высокой степенью сжатия.
- Доступен практически во всех современных дистрибутивах Linux.
Минусы
- Алгоритмы сжатия и распаковки требуют больших затрат процессора и работают медленно.
- Большие значения коэффициента сжатия могут требовать много памяти.
11. lrzip
lrzip (lrzip) – эффективная программа сжатия данных для Linux, предназначенная для оптимизации больших двоичных файлов. Для этого она расширяет алгоритм rzip для работы с переменным объемом памяти, а также использует несколько алгоритмов сжатия.
Кроме того, lrzip очень портативен. Это означает, что пакет lrzip можно найти практически во всех современных дистрибутивах Linux, таких как Ubuntu Debian и Arch Linux
Плюсы
- Эффективно сжимает файлы с большим общим размером.
- Код достаточно переносим, чтобы быть доступным для большинства дистрибутивов Linux.
Минусы
- Может сжимать только один файл за раз.
- Использование программы сжатия в UNIX может привести к менее эффективному результату.
12. Zpaq
Zpaq – это мощный инструмент сжатия данных, позволяющий создавать инкрементные резервные копии. В отличие от других алгоритмов сжатия, Zpaq представляет собой полный программный комплекс, целью которого является создание архива с избыточностью, но с высокой эффективностью использования пространства.
Кроме того, Zpaq обладает возможностью возврата к более старой версии своего архива. Это связано с тем, что Zpaq отслеживает все, что происходит в архиве, включая точные байты, которые изменились между версиями.
Плюсы
- Может автоматически создавать инкрементные резервные копии каталога.
- Отличный коэффициент сжатия при работе с несколькими файлами.
Минусы
- Не сохраняет биты разрешений и время модификации архивов.
- При архивации данных не соблюдает символьные ссылки.
Множество надежных инструментов сжатия Linux позволяют легко архивировать и резервировать основные данные. Вы можете выбрать один из многих компрессоров без потерь с высокой степенью сжатия, таких как LZ4, lzop и bzip2.
Комментарии (0)