Книга: Linux глазами хакера

13.5.3. gzip

13.5.3. gzip

В ОС Linux есть достаточно много различных утилит для упаковки данных. Наиболее популярной из них является gzip. Преимущество архивирования над простым копированием данных заключается в том, что результирующая копия занимает меньше места, а значит, носитель для резервирования нужен меньшего объема.

Чаще всего резервированию подлежат документы, размер которых в заархивированном виде может уменьшаться на 90%. Текстовые данные сжимаются намного лучше, чем программы.

Недостаток архивирования — возрастает нагрузка на процессор и может потребоваться больше времени на создание полной копии.

За счет того, что архив занимает намного меньше места, его копирование на сетевые ресурсы или запись на съемные носители (ZIP, JAZ, CD-R/RW, DVD-R/RW и др.) будет производиться быстрее. В итоге может получиться, что временные затраты на архивирование (с учетом занятости процессора) будут равны времени на копирование без архивирования.

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

gzip -уровень файл.tar

В качестве ключа -уровень нужно указать степень компрессии. Максимальный уровень равен 9. После этого указывается имя tar-архива. Давайте сожмем архивный файл, который мы создали из директории /home, применяя наибольшую компрессию. Выполните следующую команду:

gzip -9 backup.tar

Теперь просмотрите содержимое директории (команда ls). Обратите внимание, что файла backup.tar больше нет. Вместо него появился backup.tar.gz, размер которого значительно уменьшился.

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

cd /
tar xfz /home/backup.tar.gz

Эта команда сначала разархивирует gz-файл и тут же распакует tar-архив.

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

gzip -d /home/backup.tar.gz

После этого вы снова можете увидеть файл backup.tar, а backup.tar.gz исчезнет.

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

tar cvf - /home | gzip -9с > backup.tar.gz

В данном примере мы собираем в tar-архив директорию /home и тут же сжимаем ее утилитой gzip.

Помимо gzip для архивирования иногда используется утилита compress, но ее возможности по сжатию ниже, и к тому же вокруг нее были скандалы и разбирательства по поводу лицензии. Большинство администраторов уже перешли на использование gzip, и я вам рекомендую с самого начала привыкать к этой программе.

Оглавление книги

Оглавление статьи/книги

Генерация: 1.329. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз