Команда tar в Linux: создание архивов

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

Для чего это нужно

Могу ответить словами классика, но не буду :) Итак.

  1. Резервное копирование и восстановление. Ну правда, что может быть проще бэкапа – упаковать рабочие файлы в архив, возможно даже со сжатием, передать по сети в надёжное место и готово!
  2. Установка программного обеспечения. Один из вариантов дистрибьюции софта – поставка исходников в виде архивов. Линуксоиду нужно скачать архив, распаковать его, сконфигурировать и проинсталлировать программное обеспечение через сценарии.
  3. Уменьшение размеров текстовой информации (напр. логов). Да и без меня знаете, порой логи занимают достаточно большой объём. Сжатие позволяет существенно сэкономить дисковое пространство, а ведь обращение к логам происходит не так часто (ну разве что для расследования инцидентов или отладки) и неиспользуемые (старые) журналы оптимальнее заархивировать.

Важная ремарочка. Сам по себе tar не даёт сжатия без использования дополнительных компроссоров (типа gzip или bzip2), а служит скорее как простым объединением множества файлов в некий поток данных того же объёма.

Разобрали вопрос “для чего”. Двигаемся дальше:

Как использовать команду tar?

Общий принцип использования выглядит так:

$ tar опции имя_архива.tar файлы_для_упаковки

Варианты опций

  • -A (–concatenate) Объединить два архива;
  • -c (–create) Создать архив
  • -d (–diff) Проверить различия между архивами
  • -d (–delete) удалить из архива файл
  • -r (–append) Добавить файл в конец архива
  • -t (–list) Отобразить содержимое архива
  • -x (–extract) Распаковать архив
  • -C каталог (–directory=каталог) Выполнить действия в указанном каталоге (в отличие от текущего по умолчанию)
  • -f имя.tar (–file) Использовать архив с указанным именем
  • -j (–bzip2) Использовать сжатие Bzip2
  • -z (–gzip) Использовать сжатие Gzip
  • -p (–same-permissions) Сохранить права доступа к файлу
  • -v (–verbose) Вывести дополнительную информацию

Конкретные кейсы команды tar

Ну ничто так не учит, как конкретные примеры “кейсы”, как сейчас модно.

  1. Создать архив в текущем каталоге с именем fail2ban.tar в который поместить все логи, начинающиеся с имени fail2ban.log:
    # tar -cf fail2ban.tar fail2ban.log*
  2. Посмотреть содержимое архива:
    # tar -tf fail2ban.tar

    да фигли я айпишник сайта цензурю, его и так все знают )
  3. Распаковка архива в другой каталог:
    # tar -C "/tmp" -xvf fail2ban.tar
  4. Упаковываем файлы со сжатием:
    # tar -czf log.tgz litl-admin-SSL.log.1
    Для сравнения, кстати, выполнил команду du для обоих файлов, чтобы показать, что сжатие уже действительно есть:
    12 Кб против 116 Кб у несжатого файла.
  5. Аналогично можно было бы упаковать в Bzip2 заменив ключик -z на -j. Скрин делать не буду, банальная операция.

Выводы

Что в итоге надо бы запомнить?

  1. Сам tar сжатие не делает. Нужно добавлять ключи -z (для Gzip) или -j (для Bzip2) сжатия.
  2. Если операция производится с файлом-архивом обязательно указывать ключ -f и имя архива.
Интересно? Поделись с другом
Litl-Admin.ru

Comments:

Leave a Reply