Вот основа. Нет, правда, продолжая популяризировать Linux нельзя обойти вниманием такую важную функцию, как архивация и распаковка.
Для чего это нужно
Могу ответить словами классика, но не буду Итак.
- Резервное копирование и восстановление. Ну правда, что может быть проще бэкапа – упаковать рабочие файлы в архив, возможно даже со сжатием, передать по сети в надёжное место и готово!
- Установка программного обеспечения. Один из вариантов дистрибьюции софта – поставка исходников в виде архивов. Линуксоиду нужно скачать архив, распаковать его, сконфигурировать и проинсталлировать программное обеспечение через сценарии.
- Уменьшение размеров текстовой информации (напр. логов). Да и без меня знаете, порой логи занимают достаточно большой объём. Сжатие позволяет существенно сэкономить дисковое пространство, а ведь обращение к логам происходит не так часто (ну разве что для расследования инцидентов или отладки) и неиспользуемые (старые) журналы оптимальнее заархивировать.
Важная ремарочка. Сам по себе 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
Ну ничто так не учит, как конкретные примеры “кейсы”, как сейчас модно.
- Создать архив в текущем каталоге с именем fail2ban.tar в который поместить все логи, начинающиеся с имени fail2ban.log:
# tar -cf fail2ban.tar fail2ban.log*
- Посмотреть содержимое архива:
# tar -tf fail2ban.tar
- Распаковка архива в другой каталог:
# tar -C "/tmp" -xvf fail2ban.tar
- Упаковываем файлы со сжатием:
# tar -czf log.tgz litl-admin-SSL.log.1
Для сравнения, кстати, выполнил команду du для обоих файлов, чтобы показать, что сжатие уже действительно есть:
12 Кб против 116 Кб у несжатого файла. - Аналогично можно было бы упаковать в Bzip2 заменив ключик -z на -j. Скрин делать не буду, банальная операция.
Выводы
Что в итоге надо бы запомнить?
- Сам tar сжатие не делает. Нужно добавлять ключи -z (для Gzip) или -j (для Bzip2) сжатия.
- Если операция производится с файлом-архивом обязательно указывать ключ -f и имя архива.
Comments: