Возможности tar
🕛 03.08.2009, 11:23
Утилита tar - чрезвычайно мощный инструмент; она поддерживает большое количество опций. Опции программы tar делятся на две категории: команды и модификаторы. Команды указывают утилите tar, какие действия она должна выполнить, например, создать архив, вывести содержимое существующего архива, извлечь файлы и т. д. Модификаторы уточняют действия программы. С их помощью можно определить устройство, на которое следует записать архив, указать файлы, которые необходимо включить в архив,или задать сжатие архива посредством gzip или bzip2 и т. д. Утилита tar вызывается следующим образом:
tar команда [модификаторы] имвна_файлов
В качестве имен файлов в большинстве случаев задаются имена каталогов. Если при вызове программы задано имя каталога, tar включает в состав архива все файлы и все подкаталоги этого каталога. Чтобы создать архив всей файловой системы, надо указать корневой каталог (/). На самом деле набор допустимых опций гораздо более обширный и включает большое количество команд и модификаторов. Дополнительную информацию о них можно получить на страницах справочной системы, посвященных утилите tar.
В качестве примера использования приведенных выше опций рассмотрим следующую ситуацию. Предположим, что к компьютеру через интерфейс SCSI подключен накопитель на магнитных лентах. Для доступа к этому устройству используется имя /dev/stO или /dev/nstO. Для создания резервной копии содержимого каталога /home с сохранением прав доступа и с выводом имен архивируемых файлов надо задать следующую команду:
# tar -create -verbose -file /dev/stO /home
Если указать сокращенные обозначения опций, приведенные в табл. 17.1 и 17.2, то данная команда примет вид
# tar cvf /dev/stO /home
Некоторые опции программы tar (а именно -one-file-system, -same -permissions, - listed-incremental и -verify) заслуживают более подробного обсуждения. В состав файловой системы Linux могут входить виртуальные файловые системы (например, /ргос) и сменные носители. Кроме того, не исключено, что вы захотите запретить резервное копирование файловых систем, находящихся на некоторых устройствах. При использовании опции -one-file-systemкопироваться будут только те разделы, которые вы непосредственно укажете. Вместо -one-file-system можно задать опцию -exclude или -exclude-from
Задает обработку архива с помощью bzip2. (В старых версиях tar не поддерживается)
Перед обработкой данных делает указанный каталог текущим Запрещает включать файл в архив Запрещает включать в архив файлы, указанные в данном файле Выполняет архивирование, используя в качестве архива указанный файл на указанном узле. (Узел сети указывается при выполнении резервного копирования, инициируемого клиентом.) Задает обработку архива программой д z ip или ung z ip Создает или использует файл, содержащий результаты инкрементного копирования
Задает обработку архива на нескольких лентах
Сохраняет или восстанавливает только одну файловую систему Сохраняет информацию о пользователях и о правах доступа Определяет длину ленты в килобайтах; используется совместно с -multi-volume Выводит информацию об обработанных файлах
Сразу после записи сравнивает исходный файл с файлом, записанным в архив
ственно исключать из процесса резервного копирования некоторые каталоги, например /ргос.
Опция -same-permissions важна при работе с системными файлами, поскольку в ряде случаев утилита tar теряет некоторые данные о правах доступа. Чаще всего это проявляется, когда конкретные права не соответствуют значению umask. Опция -same-permissions бывает необходима при восстановлении сохраненных файлов.
Если при вызове tar указана опция -listed-incremental, программа создает новый файл либо использует имеющийся с информацией о файлах, включенных в архив. При пером запуске tar с этой опцией создается файл для хранения сведений об архиве, и все указанные файлы помещаются в архив. При последующих вызовах утилиты tar с опцией - listed-incremental обрабатываются только те файлы, которые были созданы или модифицированы с момента последней операции резервного копирования. Другими словами, данная опция позволяет вместо полного резервного копирования осуществлять частичное, или инкрементное, копирование. Многие администраторы раз в неделю или раз в месяц выполняют полное копирование и ежедневно - частичное. Такой подход позволяет обеспечить сохранность данных минимальными усилиями. (Восстанавливая информацию с резервной копии, созданной посредством инкрементного копирования, вы, возможно, обнаружите, что недавно удаленные файлы снова появились на диске. Дело в том, что при инкрементном копировании файлы, которые были удалены с момента последнего полного копирования, не помечаются как отсутствующие.) Выполняя резервное копирование в сетевом окружении, целесообразно в разные дни недели осуществлять полное копирование информации на разных компьютерах. Например, вы можете составить расписание и указать в нем, что в понедельник должно выполняться копирование содержимого machinel, во вторник - machine2 и т. д.
Опция -verifyпредназначена для проверки того, насколько корректно выполнено копирование данных. В результате такой проверки время копирования существенно возрастает, но подобное замедление работы часто бывает оправдано, особенно в тех случаях, когда в накопителе отсутствует встроенная функция проверки. (В большинстве устройств среднего и высокого уровня поверка осуществляется на аппаратном уровне.) Если вы указываете при вызове tar опцию -verifyили -diff, возможны ложные сообщения об ошибках. Дело в том, что в то время, когда выполняется резервное копирование, пользователи продолжают работать в системе, поэтому с момента копирования на резервный носитель до момента проверки файл может быть изменен. Наиболее часто модифицируются файлы протоколов, содержимое очереди на печать, файлы в каталоге /tmp и другие подобные данные. Если в результате проверки выявлено несоответствие содержимого часто изменяемых файлов, повода для беспокойства нет. Если же при проверке не совпали статические данные, например файлы в каталоге /usг, это может означать, что копирование выполняется некорректно.
Многие современные накопители на магнитных лентах поддерживают встроенные функции сжатия, поэтому в применении опции -bzip2 или -gzip обычно нет необходимости. Если же вы указываете данные опции при вызове tar, помните, что их использование может представлять угрозу для целостности резервной копии. Опции -bzip2 и -gzip осуществляют сжатие не отдельных файлов, а всего архива, поэтому если в процессе сжатия возникнет ошибка, данные, содержащиеся в архиве, будут утеряны. Сжатие, реализованное на аппаратном уровне, обеспечивает определенную устойчивость к ошибкам подобного рода. В случае сбоя искажаются один-два файла, а остальные данные в архиве можно использовать. Некоторые программы резервного копирования сжимают данные таким же способом, повышая тем самым надежность всей системы. Например, в коммерческом продукте BRU (http: //www. tolisgroup. com) используется пофайловое сжатие информации.