Смит Родерик В.
Шрифт:
Использование
tar
Утилита
tar
— одна из самых популярных программ, используемых для резервного копирования в системах Linux и UNIX. Она объединяет несколько файлов в один файл архива, что упрощает передачу информации по сети и сохранение ее на резервном носителе. Название программы представляет собой сокращение слов tape archive (архив на ленте). Утилиту tar
можно использовать для организации резервного копирования как по инициативе клиента, так и по инициативе сервера. Вместо tar
в системе Linux могут применяться и другие подобные программы, например cpio
или dump
. Особенности работы с ними описаны в документации на программы и в справочной системе Linux. В данной главе обсуждается лишь программа tar
; ей уделено особое внимание потому, что она наиболее популярна среди пользователей, а также потому, что она используется другими инструментальными средствами, например smbtar
и AMANDA. Возможности 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
и т.д.