dump, rdump - резервное копирование файловой системы

     dump [-0123456789acLnrRSu] [-B records] [-b blocksize] [-C cachesize]
          [-D dumpdates] [-d density] [-f file | -P pipecommand] [-h level]
          [-s feet] [-T date] filesystem
     dump -W | -w

rdump - является альтернативным названием программы dump.

Программа dump проверяет содержимое файловой системы, и определяет, какие файлы нуждаются в резервном копировании. Затем файлы копируются на заданный диск, магнитную ленту, или другое устройство для безопасного хранения ( удаленное резервное копирование, опция -f описана ниже ). Резервная копия превышающая по объему принимающий накопитель, будет разбита на тома. На большинстве накопителей, объем пространства определяется записью до получения указателя end-of-media . Такое поведение можно включить принудительно с помощью опции -a.

Для накопителей, не умеющих возвращать индикатор end-of-media ( некоторые ленточные картриджи ), тома имеют фиксированный размер; актуальный размер накопителя определяется объемом магнитной ленты и ее плотностью и/или с помощью опции -B. По умолчанию, для томов будут использоваться одинаковые имена, после запроса на смену накопителя.

Аргумент filesystem, задающий файловую систему подлежащую резервному копированию, может быть как специальным файлом устройства, так и точкой монтирования ( если для нее имеется стандартная запись в файле /etc/fstab ).

Опции программы dump

-0-9
Уровень резервной копии. Уровень 0 гарантирует, что будет сделана полная резервная копия файловой системы ( однако обратите внимание на опцию -h ). Уровень выше 0, означает создание инкрементного архива, будут скопированы новые данные или модифицированные со времени создания предыдущей резервной копии более низкого уровня.
Значение по умолчанию 0.
-a
"auto-size". Не проверяет длину ленты, записывая данные пока не будет получен индикатор end-of-media. Рекомендуется использовать на современных устройствах хранения данных, в случае добавления данных на ленту и на устройствах с аппаратной компрессией, если вы не уверены в степени сжатия и не можете точно рассчитать объем свободного пространства.
-B records
Объем каждого тома на выходе. Данная опция переопределяет объем ленты, рассчитанный на основании ее длины и плотности.
-b blocksize
Размер блока на выходе в килобайтах.
По умолчанию 10кб.
-C cachesize
Объем кэша в мегабайтах. С помощью этой опции можно существенно повысить производительность резервного копирования, ценой способности dump, не замечать изменений файловой системы между проходами. Рекомендуется использовать данную опцию, если вы всегда используете ее при создании снимка ( snapshot ). Будьте осторожны с форками dump, реальное потребление памяти может быть выше, чем указано в этой опции. Рекомендуемый размер 8 и 32 мегабайта.
-c
Изменить настройки по умолчанию для ленточного картриджа с плотностью 8000 bpi и длиной 1700 футов.
-D
Задать альтернативный путь к служебному файлу dumpdates.
По умолчанию /etc/dumpdates.
-d density
Установить плотность ленты.
По умолчанию 1600bpi
-f file
Задает имя файла резервной копии. В качестве имени может быть указан файл устройства, например /dev/sa0 ( устройство хранения на магнитной ленте ) или /dev/fd1 ( флоппи ), обычный файл, или "-" ( устройство стандартного вывода ). Можно задавать более одного файла, разделяя их запятыми. Каждый файл будет использован для отдельного тома резервной копии в порядке их следования в аргументе. Если томов получится больше, чем имен файлов, последнее в списке будет использовано для всех оставшихся томов, после запроса на смену накопителя. Если имя файла задано в виде "host:file" или "user@host:file", резервная копия будет создана на удаленной машине с помощью утилиты rmt.. Путь по умолчанию для удаленной утилиты rmt, /etc/rmt, может быть переопределен с помощью переменной окружения RMT.
-P pipecommand
Использовать Popen(3), для запуска строки sh-скрипта, заданной в pipecommand, для выходного устройства каждого тома. Дочернему туннелированному выходному потоку ( /dev/fd/0 ), перенаправленному из выходного потока dump и переменной окружения DUMP_VOLUME, присваивается номер текущего тома. После каждого тока, записывающая сторона туннеля закрывается и выполняется строка скрипта, заданная в pipecommand. Соответствую размеру носителя, установленному опцией -B, каждый том записывается таким образом, как будь-то является устройством хранения на магнитной ленте.
Смотрите пример в конце.
-h level
Соблюдать установленный пользовательский флаг "nodump" ( UF_NODUMP ) только для текущего уровня или уровня выше. Уровень соблюдения по умолчанию 1, поэтому при инкрементном резервном копировании, файлы с флагом "nodump", будут проигнорированы а при создании полной копии, будут скопированы вместе с остальными.
-L
Эта опция извещает программу dump, что резервное копирование производится на "живой" файловой системе. Для создания актуальной резервной копии, dump создает снимок( snapshot ) файловой системы, в директории .snap, корня файловой системы, подлежащей копированию, после чего делает резервную копию по созданному снимку. Файл снимка разлинковывается как только начинается процесс копирования и удаляется по его завершении. Данная опция игнорируется для не смонтированных или read-only, файловых систем. Если в корне файловой системы, подлежащей копированию, не будет найдена директория .snap, будет выведено предупреждение и dump вернется к поведению по умолчанию. Что-бы решить данную проблему, достаточно создать в корне файловой системы, подлежащей резервному копированию, директорию .snap, владельцем должен быть root, в качестве группы "operator", права доступа должны быть 0770.
-n
Если dump, требуется вмешательство оператора, известить об этом всех членов группы "operator", как это происходит в wall(1).
-r
Заставляет dump быть более дружелюбным к программам удаленной синхронизации. В обычной ситуации dump сохраняет дату текущего и предыдущих резервных копий во многих местах по всему дампу. Такай разброс при сохранении изменений, значительно замедляет работу rsync или любой другой программы инкрементной передачи файлов, использующейся для обновления удаленной резервной копии уровня 0, так как дата изменяется для каждого дампа. Данная опция устанавливает все даты в век, позволяя rsync работать более эффективно при передаче файлов резервных копий.
-R
Еще более дружелюбный режим для rsync. Опция отключает сохранение времени последнего доступа для inode ( вместо этого, сохраняя его как время последней модификации ). Это позволяет rsync работать более эффективно при передаче резервных копий, созданных с файловой системы с большим количеством файлов у которых менялось только время последнего доступа.
Эта опция включает в себя и работу опции -r.
-S
Показать расчетный размер резервной копии и количество необходимой ленты, после чего выйти, не производя никаких действий по резервному копированию.
-s feet
Попытаться подсчитать количество необходимой пленки при определенной плотности. Если этого количества будет не достаточно, dump запросит еще. Рекомендуется быть более консервативным при выборе данной опции.
Длина пленки по умолчанию 2300 футов.
-T date
Использовать указанную дату как стартовую для дампа, вместо даты полученной из файла dumpdates. Формат даты ctime(3). Данная опция используется в скриптах, автоматизирующих резервное копирование, через определенные промежутки времени. Опции -T и -u являются взаимоисключающими.
-u
Обновить данные в файле dumpdates по завершении резервного копирования. Формат файла dumpdates, прост для прочтения, состоит из трех параметров на строку: имя файловой системы, уровень инкремента, и дата в формате ctime(3). Для каждой файловой системы, может быть только одна запись для определенного уровня. В случае необходимости файл может быть отредактирован вручную. Путь к файлу по умолчанию: /etc/dumpdate, однако его можно переопределить с помощью опции -D.
-W
Сообщить оператору, какие файловые системы должны быть скопированы. Эта информация выбирается из файлов dumpdates и /etc/fstab. Эта опция указывает программе dump, печатать для каждой файловой системы из файла dumpdates: дату последнего резервного копирования, уровень последней копии и выделять файловые системы, подлежащие резервному копированию. При использовании этой опции, все остальные параметры будут проигнорированы и программа dump завершится после вывода информации.
-w
Подобна опции -W, но выводит только файловые системы подлежащие резервному копированию.

Директории и файлы с установленным флагом nodump, не попадут в резервную копию, наряду с объектами, исключаемыми из копии, опцией -h.

Программа dump потребует вмешательства оператора в случае: окончания пленки, окончания дампа, ошибки записи на пленку, ошибки открытия пленки или ошибки чтения диска ( пороговое количество ошибок 32 ). Кроме того, будут извещены все операторы, согласно ключу -n. Dump требует вмешательства оператора на контрольном терминале в случае невозможности продолжения работы или если что-то пошло совсем не правильно. На все запросы dump, нужно отвечать "yes" или "no", соответственно.

Создание полной резервных копий занимает довольно много времени, поэтому dump проводит тестирование, контрольной точкой является начало каждого тома. Если запись текущего тома не возможно по каким-то причинам, dump, получив подтверждение оператора, перезапустится и продолжит работу с контрольной точки, после того как старая лента будет перемотана и удалена, а новая заправлена.

В процессе работы, через определенные промежутки времени ( каждые 5 минут или при получении сигнала SIGINFO ), dump информирует оператора о ходе процесса, в частности о маленьком количестве блоков для записи, о расчетном количестве необходимой ленты, о примерном времени до окончания процесса и о времени замены ленты. Вывод достаточно подробен, что-бы остальные знали что терминал занят резервным копированием и будет занят еще некоторое время.

В случае поломки диска, время, требуемое на восстановление всех необходимых данных с лент или из файлов можно минимизировать, путем использования инкрементных резервных копий. Кроме того инкрементные архивы позволяют снизить потребление используемой ленты.

Первоначально, всегда создается полная резервная копия, уровень 0, например

server #/sbin/dump -0u -f /dev/nsa0 /usr/src

Это нужно делать через определенные интервалы времени, например, раз в месяц или два и на свежей пленке.

После создания резервной копии уровня 0, то есть полного дампа, делаются ежедневные резервные копии активных файловых систем ( файловые системы с изменяемыми файлами, в зависимости от конфигурации разделов, у вас могут быть файловые системы, содержащие не изменяемые данные ), по модифицированному алгоритму Tower of Hanoi, со следующей последовательностью уровней дампа:

3 2 5 4 7 6 9 8 9 9 ...

Для ежедневного копирования можно использовать фиксированное количество лент с расчетом на неделю. Каждую неделю делается копия уровня 1, и каждый день, последовательность Hanoi, начинается с 3. Для недельных копий используется другой фиксированный набор лент для каждой файловой системы и так по кругу.

После нескольких месяцев ленты должны ротироваться и вводиться свежие ленты.

Переменные окружения

TAPE
Файл или устройство для хранения резервной копии, если не использовалась опция -f.
RMT
Путь удаленной rmt(8) программы.
RSH
Путь программы удаленной оболочки, если не rsh(1).

Файлы

  • /dev/sa0 — устройство хранения на магнитной ленте по умолчанию
  • /etc/dumpdates — файл хранения дат резервных копий, может быть переопределен опцией -D
  • /etc/fstab — файл монтирования файловых систем
  • /etc/group — файл содержащий группы пользователей

Код возврата

Dump возвращает 0 в случае удачного завершения работы, 1 в случае обнаружения неполадок при старте программы и 3 в случае сбоя в процессе выполнения.

Примеры

Резервное копирование файловой системы /u на DVD с использованием growisofs. Использовать 16 мегабайт под кэш, создать снимок файловой системы и обновить данные в файле dumpdates.

server #/sbin/dump -0u  -L -C16 -B4589840 -P 'growisofs -Z /dev/cd0=/dev/fd/0' /u

Смотрите также:
chflags(1), fstab(5), restore(8), rmt(8)