tar - создать архив

tar.

Создать архив tar можно с разными вариантами сжатия, потому сначала "теория tar-создания архива" (linux-команды архивирования с помощью tar), а далее практические рекомендации по tar-архивам (плюсы/особенности каждого из методов архивации - tar/gzip-tar/bzip2-tar).

tar cf

Создать tar-архив без сжатия.

tar cf backup-noncompress.tar /var/www/vhosts/linuxcmd.ru/public_html

root@Debian:/home/archive# tar cf backup-noncompress.tar /var/www/vhosts/linuxcmd.ru/public_html
tar: Removing leading `/' from member names
root@Debian:/home/
archive# ls -s backup-noncompress.tar
21M backup-noncompress.tar
root@Debian:/home/
archive#

На выходе получили 21Мб (для сравнения).

Если файлов не слишком много и/или обязательно нужно видеть ход выполнения, какие файлы будут включены в архив - добавляем стандартный ключик v (verbose):

tar cvf имя_архива имя_файла_или_папки ещё_имя_файла_если_нужно_через_пробел_итд

tar czf

Заархивировать с gzip-сжатием можно с ключиком z.

tar czf backup-gzip.tar.gz /var/www/vhosts/linuxcmd.ru/public_html

root@Debian:/home/archive# tar czf backup-gzip.tar.gz /var/www/vhosts/linuxcmd.ru/public_html
tar: Removing leading `/' from member names
root@Debian:/home/
archive# ls -s backup-gzip.tar.gz
5.9M backup-gzip.tar.gz
root@Debian:/home/
archive#

Прогресс на лицо 6 метров против 21.

tar cjf

Лучший способ упаковки - bzip2-компрессия, для него предназначен ключик j.

tar cjf backup-bzip2.tar.bz2 /var/www/vhosts/linuxcmd.ru/public_html

root@Debian:/home/archive# tar cjf backup-bzip2.tar.bz2 /var/www/vhosts/linuxcmd.ru/public_html
tar: Removing leading `/' from member names
root@Debian:/home/
archive# ls -s backup-bzip2.tar.bz2
4.9M backup-bzip2.tar.bz2
root@Debian:/home/
archive#

Архивация с помощью bzip2 выгадала ещё мегабайт (5 Mb против 6 у gzip). Потому если у вас нет проблем с производительностью (CPU) - это и есть лучший вариант запаковать в архив.

 

Практические рекомендации по tar, tar.gz и tar.bz2

tar cf (без сжатия) удобен скоростью. Когда объёмы не слишком большие (и трафик не принципиален), то удобней быстро запаковать и после быстро распаковать - даже если времени на передачу уйдёт больше. В mc архив открывается как папка (и быстро), что делает такой способ ещё более привлекательным.

Важно: нужно помнить, что при копировании из-под рута сохраняются в т.ч. все chown-атрибуты файлов (UID/gid). Это крайне удобно, когда системы одинаковые, однако если они отличаются (и, например, UID-ы фтп-сервера получатся разные), то вполне вероятно получить ошибку типа "Не удаётся изменить атрибуты удалённых файлов"

gzip-tar удобен тем, что gzip изначально присутствует в системе (debian "из коробки") - в отличии от bzip2, который нужно устанавливать дополнительно. Конечно это быстро (bzip2 apt-get install), однако в случае, когда вы попали на незнакомый вам сервер и нужно что-то сделать с минимумом телодвижений - правильней ориентироваться на tar czf - и сжатие хорошее, и нагрузка меньше (а сервер может оказаться "дохленьким") и точно отработает.

Напоследок по способу именования тар-архивов. Windows-пользователям непривычно использовать имена "через две точки" - типа "archive.tar.bz2", им понятней-привычней обзывать "archive.bz2". Однако важно помнить, что в linux по умолчанию при разархивировании "внешнее" расширение (gz или bz2) отбросится и получится файл "archive", что не так удобно (ведь при этом он останется tar-архивом). Чтобы это "не забывать" и по расширению можно было выполнять действие (например, архив будет автоматически открываться в midnight commander-е) - как раз и правильней/удобней использовать "двухточечные" (и более-точечные :) ) имена - включающие "archive.name.tar.compression.type".

Если вам помогла или просто понравилась статья - плюсаните/поделитесь, пожалуйста.

Добавить комментарий