Шрифт:
Интервал:
Закладка:
10.4.3. Команды dump и restore
Пара утилит — dump и restore — это самое распространенное средство резервирования и восстановления данных в UNIX-системах. Они обслуживают файловую систему ext2 (ext3), то есть для архивирования ваших Windows-разделов их использовать не удастся. Эти утилиты входят в состав пакета dump, который в дистрибутивах Red Hat устанавливается по умолчанию; если в вашем дистрибутиве этого пакета нет, то скачайте его с http://dump.sourceforge.net.
Программа dump позволяет организовать инкрементное резервирование, сжимать полученный архив и разбивать его на тома, когда его размер превышает емкость внешнего носителя. Формат вызова:
dump [-уровень] [ключи] список_файлов
Номер уровня — это средство, при помощи которого программа dump выполняет инкрементное архивирование. Исторически использовались номера от 0 до 9, Linux-версия программы понимает любое целое число. Уровень 0 соответствует полному копированию всей файловой системы. Уровень N архивирует только те файлы, которые изменились с момента создания последнего архива уровня ниже N. Уровень архива и время его создания отмечаются в файле /etc/dumpdates, если команда dump запущена с ключом -u.
В качестве списка файлов можно указывать не только файлы и каталоги на смонтированных файловых системах, но и файл устройства, на котором находится файловая система, в данный момент размонтированная. Единственное ограничение — такую файловую систему можно архивировать только полностью (уровень 0).
Полный список ключей команды dump вы найдете на ее man-странице. Вот наиболее важные из них:
♦ -f <файлы> — список имен файлов, разделенный запятыми. Тома многотомного архива выводятся в указанные файлы в порядке их перечисления. Это могут быть файлы на диске, файлы устройств, стандартный вывод (символ «-»);
♦ -y — после успешного архивирования отметить дату и уровень в файле /etc/dumpdates;
♦ -x[уровень_сжатия] — сжимать выводимый архив средствами библиотеки zlib. Значение уровня сжатия по умолчанию равно 2; другой уровень нужно указывать без пробела.
Программа restore восстанавливает отдельные файлы и файловые системы. архивированные программой dump. Формат команды:
restore [режим] [ключи]
Важнейших режимов два:
♦ -i — интерактивное восстановление отдельных файлов и каталогов. Подкоманды этого режима (список которых можно получить по подкоманде help) позволяют перемещаться по архиву, оглавление которого прочитано с ленты, как по обычному дереву каталогов, и выбирать файлы для восстановления. Выбранный файл добавляется в список восстановления подкомандой add. Список восстановления извлекается с ленты подкомандой extract.
♦ -r — полное восстановление файловой системы. Пострадавшую файловую систему нужно сначала отформатировать командой mkfs (п.2.3), смонтировать и переместиться в ее корневой каталог. Потом восстановить с ленты архив уровня 0, а потом — все инкрементные архивы в порядке возрастания номера уровня.
10.4.4. Архиватор cpio
GNU-версия этого классического архиватора (Copy In/Out), используемая в Linux, поддерживает архивы как в собственном формате, так и в формате tar. Программа cpio может работать в одном из трех режимов в зависимости от первого ключа:
♦ cpio -о [ключи] < список_файлов > архив: режим copy-out, копирование файлов в архив. Список файлов, по одному в строке, подается на стандартный ввод программы; в архив перенаправляется поток стандартного вывода. В качестве архива можно указывать файл на диске, файл устройства магнитной ленты или канал: например, можно пропустить вывод через какую-нибудь программу сжатия. Список файлов можно подготовить вручную, а можно использовать поток вывода другой программы, например, ls -1 (с ключом «дефис-единица», выводящим файлы по одному в строке) или find.
♦ cpio -i [ключи] [шаблоны] < архив: режим copy-in, извлечение файлов из архива или вывод содержания архива. Архив читается из стандартного потока ввода. Извлечению подлежат только те файлы, имена которых удовлетворяют одному из шаблонов, перечисленных через пробел; если шаблоны не указаны, то извлекаются все файлы. Внимание: символы подстановки не совпадают с теми, которые использует оболочка. Символу «.» удовлетворяет любая подстрока в начале образца, а символу «/» в имени файла — любой набор символов.
♦ cpio -р [ключи] каталог_назначения < список_файлов: режим copy-pass, копирование дерева каталогов.
О ключах команды cpio можно узнать из ее man-страницы. Приведу несколько примеров ее использования.
Архивирование в формате tar под именем archive.tar файлов, имена которых вы вводите в командной строке:
$ cpio -о -H tar -O archive.tar
/opt/ctrl/ctrl.с
/opt/ctrl/ctrl.h
/opt/ctrl/ctrl.html
^D
$
Архивный файл будет создан с сохранением структуры каталогов. Чтобы убедиться в этом, запустите файловый менеджер mc и просмотрите содержимое архива archive.tar.
Архивирование текущего каталога с использованием перенаправления вывода команды ls:
$ ls -1 | cpio -о -H tar -О current_dir.tar
Извлечение файлов из архива:
$ cpio -i < current_dir.tar
В режиме copy-in ключ формата «-H tar» указывать необязательно, потому что программа cpio автоматически определяет формат входного архива.
Просмотр содержимого архива на магнитной ленте:
$ cpio -i -t < /dev/nftape
10.4.5. Программа AMANDA
Этот параграф я помещаю здесь, так сказать, «на вырост». Администратору домашней сети он вряд ли пригодится.
Программа AMANDA (The Advanced Maryland Automatic Network Disk Archiver) — это система резервного копирования, которая позволяет администратору локальной сети установить один главный бэкап-сервер для резервного копирования множества узлов локальной сети. При этом вам не придется подходить к каждому компьютеру, чтобы сделать резервную копию. AMANDA использует стандартные программы dump и tar, поэтому вы можете выполнить резервное копирование большинства UNIX-станций. Последние версии программы позволяют выполнять резервное копирование рабочих станций MS Win9x/NT, но для этого нужно установить пакет SAMBA.
Скачать программу вы можете с сайта разработчика www.amanda.org. Вам потребуются 3 пакета: amanda, amanda-client, amanda-server. Первый пакет устанавливается как на сервере, так и на клиенте; второй пакет — только на клиенте, а третий — только на сервере.
Я рекомендую загрузить самую последнюю версию. Как правило, самые новые версии распространяются не в виде RPM-пакета, а в виде так называемого тарболла — файла с расширением tar.gz. Распаковав архивы, выполните команду:
$ ./configure --with-config=network --with-user=amanda --with-group=operator
Опции with-user и with-group указывать обязательно. Желательно перед выполнением данной команды создать пользователя amanda и поместить его в группу operator. Название нашей конфигурации — network. Так же будет называться каталог с резервными копиями.
Если вы планируете делать резервное копирование с Windows-машины, нужно добавить опцию --with-smbclient=/path/to/smbclient.
Обратите внимание на то, что:
♦ На клиенте сначала нужно установить пакет amanda, затем — amanda-client. На сервере вместо пакета amanda-client нужно установить пакет amanda-server.
♦ Пользователя amanda нужно добавить на всех машинах сети, с которых предполагается архивирование данных.
После успешного завершения программы configure введите команды make и make install.
Основными конфигурационными файлами AMAND'ы служат /etc/amanda/amanda.conf и /etc/amanda/disklist. В этих файлах находится информация о стримере, о разделах, которые вы хотите резервировать, а также другая важная для AMAND'ы информация. Пока воспользуемся файлами по умолчанию. Откройте их и измените только специфические для вашей сети параметры.
В файле disklist нужно прописать имена узлов сети, которые вы хотите архивировать. При этом лучше прописывать IP-адреса, поскольку некоторые версии AMAND'ы иногда не могут преобразовать имя узла в IP-адрес (почему — сам не знаю, ведь все должно работать через DNS).
Теперь приступим к настройке узлов, резервную копию которых вам нужно создать. Если эти узлы используют устаревший суперсервер inetd, в файл /etc/inetd.conf нужно добавить такие строки:
amanda dgram udp wait amanda /usr/libexec/amandad amandad
amandaidx stream tcp nowait amanda /usr/libexec/amindexd
amindexd amidxtape stream tcp ncwait amanda /usr/libexec/amidxtaped amidxtaped
Если же используется суперсервер xinetd, то в файл /etc/xinetd.conf нужно добавить следующие строки:
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение