Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
Во многих случаях принимаемый в утилите cpio подход к указанию подлежащих копированию или восстановлению файлов и каталогов является прямо противоположным подходу, применяемому в утилите tar. При создании архива утилите tar передается список файлов и каталогов, указываемых как параметры командной строки. Любой указанный каталог просматривается рекурсивно. При создании архива с помощью утилиты cpio ей предоставляется список объектов (имена файлов и каталогов, символические имена любых устройств, гнезда доменов UNIX, поименованные каналы и т. п.). Этот список помещается в стандартный поток stdin утилиты cpio с помощью канала и обычно генерируется командой find.
Простая команда, выполняющая копирование всей файловой системы, выглядит следующим образом:find / -print0 I cpio -o0B > /dev/st0
Результаты выполнения команды find будут включать каталог /proc и тому подобные нежелательные для резервного копирования каталоги. Уточнив используемые параметры команды find, можно исправить ситуацию:
find /* -fstype ext2 -print0 I cpio -o0B > /dev/st0
В этом примере копируемые объекты ограничены только файловыми системами типа Ext2. Также будут пропущены все скрытые файлы и каталоги. Устройства вывода информации на магнитную ленту стоят дорого. Получить доступ к удаленным устройствам не намного сложнее, чем к локальным:
find /* -fstype ext2 -print0 | ssh $TAPEHOST «cpio -o0B I buffer -o /dev/st0»
Обратите внимание, что для обращения к удаленным ленточным устройствам используется команда buffer.
Восстановление с локального ленточного устройства
Еще одно принципиальное различие между утилитами tar и cpio состоит в способе сохранения и восстановления абсолютных путей. В случае с утилитой tar ведущая косая черта в абсолютных именах файлов при создании копии удаляется. Утилита cpio в процессе восстановления принудительно превращает все пути в относительные.
Как правило, файлы должны восстанавливаться в тех каталогах, которые будут задаваться относительно текущего каталога (или – в некоторых случаях – каталога root). По умолчанию утилита cpio не восстанавливает каталогов, поэтому при ее вызове следует указывать параметр -d.
Восстановление с удаленного ленточного устройства
Восстановление с удаленных ленточных устройств осуществляется так же просто, как и копирование, например:ssh $OTHERHOST 'buffer -i /devst0', I 'find /* -fstype ext2 -print0 | cpio -id'
Если необходимо восстановить только некоторые файлы, добавьте в конец команды cpio список глобальных шаблонов.
Здесь обнаруживается еще одно различие между утилитами cpio и tar, связанное с выполнением частичного восстановления. При использовании утилиты tar список требуемых файлов и каталогов можно поместить прямо в команду ее вызова. Однако утилита tar не допускает использования глобальных шаблонов.
При работе с утилитой tar типичный способ обойти это ограничение состоит в том, чтобы извлечь индекс архива в файл путем простого перенаправления вывода. Данные полученного файла фильтруются с помощью команды grep, после чего полученный список передается команде вызова утилиты tar для извлечения данных. Например, подготовив файл restorelist, содержащий имена требуемых файлов и каталогов, помещенные в отдельные строки, можно ввести следующую команду:ssh $OTHERHOST 'buffer -i /dev/st0' I 'tar xTf /tmp/restorelist -'
Программа резервного копирования dump
Программа dump в корне отличается от tar – она предназначена для резервного копирования и восстановления файловой системы и создает резервные копии элементов файловой системы. Использование этой утилиты позволяет получить копию одной файловой системы быстро и эффективно. К сожалению, ее нельзя применить к отдельным каталогам. Программа restore выполняет функцию, обратную dump, она восстанавливает полную резервную копию файловой системы.
Утилита dump имеет несколько уровней резервного копирования. Уровни могут быть от 0 до 9, где уровень 0 (полная резервная копия системы), который гарантирует, что все элементы файловой системы будут скопированы. Уровни выше 0 – добавочные резервные копии, которые указывают dump копировать все новые или модифицированные после последнего копирования файлы. Чтобы быть более точным, на каждом уровне добавочного резервного копирования вы сохраняете все изменения, произошедшие после создания последней резервной копии на том же или предыдущем уровне. Это позволяет вам осуществлять инкрементное резервирование системы.
Создание резервных копий с помощью программы dump
Использование программы dump очень простое:dump -0u -f /dev/st0 /home
Таким образом, мы создали полную копию каталога /home. Для получения инкрементной копии выполним следующую команду:
dump -3u -f /dev/st0 /home
Восстановление файлов, созданных dump
Для восстановления резервных копий, созданных утилитой dump, используется программа restore. Она восстанавливает файлы и каталоги из резервных копий, полученных программой dump. При диалоговом восстановлении файлов из копии программа restore предоставляет интерфейс, который позволяет пользователю перемещаться по дереву каталогов, выбирая файлы для извлечения, после чтения информации о каталогах из копии.
При восстановлении резервной копии мы должны перейти в раздел файловой системы, где хотим восстанавливать нашу резервную копию. Это требуется, т. к. в диалоговом режиме программа restore восстанавливает все файлы раздела файловой системы, из которой она была запущена.
Для восстановления файлов из копии в диалоговом режиме используйте команду:restore -i -f /dev/st0 restore >
На вашем терминале вы увидите командную строку, для получения списка файлов текущего или заданного каталога используйте команду is:
restore > ls
admin/ lost+found/ named/ quota.group quota.user wahib/
restore >Чтобы внести текущий каталог или файл в список файлов для извлечения, используйте команду add:
restore > add Personal/ restore >
Чтобы удалить текущий каталог или заданный файл из списка файлов для извлечения, используйте команду delete.
Чтобы восстановить все файлы из списка для извлечения, используйте команду extract.
Для выхода из интерактивного режима программы restore после завершения восстановления файлов используйте команду quit.
Пакет AMANDA
Многие системные администраторы создают свои собственные сценарии и выполняют большую часть работы по контролю за использованием томов вручную.
Пакет AMANDA (Advanced Maryland Automatic Network Disk Archiver) контролирует процесс проведения серий полных и инкрементных резервирований данных на промежуточное дисковое хранилище хоста ленточных устройств для некоторого набора сетевых клиентов. Затем полученные наборы данных переносятся на ленточные носители. При условии корректной установки пакет AMANDA работает полностью автоматически. Процесс резервирования обычно запускается ночью и осуществляет все операции копирования, последовательно устанавливая соединения хоста копирования с каждым из клиентов. Существует возможность устанавливать эти соединения параллельно, а также контролировать и регулировать создаваемую нагрузку на сеть. Модуль планировщика определяет, какой уровень инкрементного копирования должен быть выполнен для каждой файловой системы каждого из хостов.
Программы пакета AMANDA для создания архивных файлов используют утилиты dump или tar. Поэтому оказывается возможным извлекать созданные ими архивы с помощью обычных инструментов. Кроме того, для восстановления предназначена команда amrecover пакета AMANDA.
Команды mt и mtx
Команды mt и mtx предназначены для управления устройствами вывода на магнитную ленту. Команда mt предназначена для получения сведений о состоянии устройства, определения или установки абсолютной и/или логической позиции головки над носителем, перемотки носителя, извлечения носителя и поиска «по направлению вперед» конца последнего блока записанных данных.
Команда mtx включает расширения для большинства распространенных типов устройств автоматической смены носителей.
Команда buffer
Команда buffer осуществляет вывод непрерывной последовательности данных на носитель даже в тех случаях, когда предоставляющие эти данные команды выводят их неравномерно. Данная ситуация является типичной для работы программ сжатия данных, считывающих информацию через сетевые соединения. Подобное возможно даже при выполнении нормальных операций архивирования в среде перегруженной многозадачной операционной системы.
Многотомные резервные копии
Приведенные ранее примеры не предназначены для создания резервных копий, занимающих несколько магнитных лент. Утилиты tar и cpio предоставляют параметры, позволяющие разместить любой архивный файл на нескольких томах носителей. Размещение архива на нескольких лентах снижает его надежность, поскольку порча любой из лент делает хранение всего остального набора носителей бесполезным. Тем не менее иногда это необходимо, а при соответствующей адаптации подхода и полезно, например для резервирования на компакт-дисках.