Книга: Сетевые средства Linux
Возможности tar
Возможности tar
Утилита tar
— чрезвычайно мощный инструмент; она поддерживает большое количество опций. Опции программы tar
делятся на две категории: команды и модификаторы. Команды указывают утилите tar
, какие действия она должна выполнить, например, создать архив, вывести содержимое существующего архива, извлечь файлы и т.д. Модификаторы уточняют действия программы. С их помощью можно определить устройство, на которое следует записать архив, указать файлы, которые необходимо включить в архив, или задать сжатие архива посредством gzip
или bzip2
и т.д. Утилита tar
вызывается следующим образом:
tar команда [модификаторы] имена_файлов
В качестве имен файлов в большинстве случаев задаются имена каталогов. Если при вызове программы задано имя каталога, tar
включает в состав архива все файлы и все подкаталоги этого каталога. Чтобы создать архив всей файловой системы, надо указать корневой каталог (/
).
В табл. 17.1 и 17.2 перечислены наиболее часто используемые команды и модификаторы утилиты tar
. На самом деле набор допустимых опций гораздо более обширный и включает большое количество команд и модификаторов. Дополнительную информацию о них можно получить на страницах справочной системы, посвященных утилите tar
.
Таблица 17.1. Часто употребляемые команды утилиты tar
Команда | Сокращенный вариант | Описание |
---|---|---|
--create |
с |
Создает архив |
--concatenate |
A |
Добавляет tar-файл к существующему архиву |
--append |
r |
Добавляет обычные файлы к существующему архиву |
--update |
u |
Добавляет файлы, которые имеют более позднюю дату создания, чем файлы с соответствующими именами, присутствующие в составе архива |
--diff или --compare |
d |
Сравнивает файлы в архиве с файлами на диске |
--list |
t |
Выводит содержимое архива |
--extract или --get |
x |
Извлекает файлы из архива |
Таблица 17.2. Часто употребляемые модификаторы утилиты tar
Модификатор | Сокращенный вариант | Описание |
---|---|---|
--absolute-paths |
P | Сохраняет символ / в начале пути к файлу |
--bzip2 |
I |
Задает обработку архива с помощью bzip2 . (В старых версиях tar не поддерживается) |
--directory каталог |
C |
Перед обработкой данных делает указанный каталог текущим |
--exclude файл |
(отсутствует) | Запрещает включать файл в архив |
--exclude-from файл |
X |
Запрещает включать в архив файлы, указанные в данном файле |
--file [узел:]файл |
f |
Выполняет архивирование, используя в качестве архива указанный файл на указанном узле. (Узел сети указывается при выполнении резервного копирования, инициируемого клиентом.) |
--gzip или --ungzip |
z |
Задает обработку архива программой gzip или ungzip |
--listed-incremental=файл |
g |
Создает или использует файл, содержащий результаты инкрементного копирования |
--multi-volume |
M |
Задает обработку архива на нескольких лентах |
--one-file-system |
1 |
Сохраняет или восстанавливает только одну файловую систему |
--same-permissions или --preserve-permissions |
p | Сохраняет информацию о пользователях и о правах доступа |
--tape-length N |
L |
Определяет длину ленты в килобайтах; используется совместно с --multi-volume |
--verbose |
v |
Выводит информацию об обработанных файлах |
--verify |
W |
Сразу после записи сравнивает исходный файл с файлом, записанным в архив |
В качестве примера использования приведенных выше опций рассмотрим следующую ситуацию. Предположим, что к компьютеру через интерфейс SCSI подключен накопитель на магнитных лентах. Для доступа к этому устройству используется имя /dev/st0
или /dev/nst0
. Для создания резервной копии содержимого каталога /home
с сохранением прав доступа и с выводом имен архивируемых файлов надо задать следующую команду:
# tar --create --verbose --file /dev/st0 /home
Если указать сокращенные обозначения опций, приведенные в табл. 17.1 и 17.2, то данная команда примет вид:
# tar cvf /dev/st0 /home
Некоторые опции программы tar
(а именно --one-file-system
, --same-permission
s, --listed-incremental
и --verify
) заслуживают более подробного обсуждения. В состав файловой системы Linux могут входить виртуальные файловые системы (например, /proс
) и сменные носители. Кроме того, не исключено, что вы захотите запретить резервное копирование файловых систем, находящихся на некоторых устройствах. При использовании опции --one-file-system
копироваться будут только те разделы, которые вы непосредственно укажете. Вместо --one-file-system
можно задать опцию --exclude
или --exclude-from
, которая позволяет непосредственно исключать из процесса резервного копирования некоторые каталоги, например /proc
.
Опция --same-permissions
важна при работе с системными файлами, поскольку в ряде случаев утилита tar
теряет некоторые данные о правах доступа. Чаще всего это проявляется, когда конкретные права не соответствуют значению umask
. Опция --same-permissions
бывает необходима при восстановлении сохраненных файлов.
Если при вызове tar
указана опция --listed-incremental
, программа создает новый файл либо использует имеющийся с информацией о файлах, включенных в архив. При пером запуске tar
с этой опцией создается файл для хранения сведений об архиве, и все указанные файлы помещаются в архив. При последующих вызовах утилиты tar
с опцией --listed-incremental
обрабатываются только те файлы, которые были созданы или модифицированы с момента последней операции резервного копирования. Другими словами, данная опция позволяет вместо полного резервного копирования осуществлять частичное, или инкрементное, копирование. Многие администраторы раз в неделю или раз в месяц выполняют полное копирование и ежедневно — частичное. Такой подход позволяет обеспечить сохранность данных минимальными усилиями. (Восстанавливая информацию с резервной копии, созданной посредством инкрементного копирования, вы, возможно, обнаружите, что недавно удаленные файлы снова появились на диске. Дело в том, что при инкрементном копировании файлы, которые были удалены с момента последнего полного копирования, не помечаются как отсутствующие.) Выполняя резервное копирование в сетевом окружении, целесообразно в разные дни недели осуществлять полное копирование информации на разных компьютерах. Например, вы можете составить расписание и указать в нем, что в понедельник должно выполняться копирование содержимого machine1
, во вторник — machine2
и т.д.
Опция --verify
предназначена для проверки того, насколько корректно выполнено копирование данных. В результате такой проверки время копирования существенно возрастает, но подобное замедление работы часто бывает оправдано, особенно в тех случаях, когда в накопителе отсутствует встроенная функция проверки. (В большинстве устройств среднего и высокого уровня поверка осуществляется на аппаратном уровне.) Если вы указываете при вызове tar
опцию --verify
или --diff
, возможны ложные сообщения об ошибках. Дело в том, что в то время, когда выполняется резервное копирование, пользователи продолжают работать в системе, поэтому с момента копирования на резервный носитель до момента проверки файл может быть изменен. Наиболее часто модифицируются файлы протоколов, содержимое очереди на печать, файлы в каталоге /tmp
и другие подобные данные. Если в результате проверки выявлено несоответствие содержимого часто изменяемых файлов, повода для беспокойства нет. Если же при проверке не совпали статические данные, например файлы в каталоге /usr
это может означать, что копирование выполняется некорректно.
Многие современные накопители на магнитных лентах поддерживают встроенные функции сжатия, поэтому в применении опции --bzip2
или --gzip
обычно нет необходимости. Если же вы указываете данные опции при вызове tar
, помните, что их использование может представлять угрозу для целостности резервной копии. Опции --bzip2
и --gzip
осуществляют сжатие не отдельных файлов, а всего архива, поэтому если в процессе сжатия возникнет ошибка, данные, содержащиеся в архиве, будут утеряны. Сжатие, реализованное на аппаратном уровне, обеспечивает определенную устойчивость к ошибкам подобного рода. В случае сбоя искажаются один-два файла, а остальные данные в архиве можно использовать. Некоторые программы резервного копирования сжимают данные таким же способом, повышая тем самым надежность всей системы. Например, в коммерческом продукте BRU (http://www.tolisgroup.com
) используется пофайловое сжатие информации.
- Работа с DataRow
- 10.6.6. Создание возможности для прерывания функций: siginterrupt()
- Использование tar
- Расширенные возможности указания пользовательских планов
- Возможности, планируемые к реализации в следующих версиях
- Chapter 11. Iptables targets and jumps
- Возможности SSH
- ACCEPT target
- CLASSIFY target
- CLUSTERIP target
- CONNMARK target
- CONNSECMARK target