Безопасность и оптимизация Linux.Редакция для Red Hat

Создание резервных копий с tar


С шестью лентами вы можете делать резервные копии каждый день; процедура использует ленту 1 для полного резервного копирования (Пятница 1), и ленты со 2 по 5 для добавочного резервного копирования (С понедельника по четверг). Затем, мы делаем новую полную резервную копию на ленту 6 (вторая пятница), и далее делаем добавочные копии на лентах со 2 по 5. Важно сохранить 1 в неприкосновенности, пока мы не получим полную резервную копию на ленте 6. В следующем примере, мы подразумеваем, что записываем резервные копии на SCSI ленточное устройство с именем (/dev/st0), и создаем резервную копию домашнего каталога (/home) нашей системы.

Первое, мы должны переместиться в корневой раздел. Когда “tar” создает архивные файлы, он удаляет начальный символ “/” (слеш) из пути к файлу. Это значит, что после восстановления файлы могут оказаться не на своем месте. Чтобы решить эту проблему, необходимо до изготовления резервных копий и восстановления данных переходить в корневой раздел вашей файловой системы.

Переместитесь в корневой раздел:
[root@deep]# cd /

Важно всегда начинать с изготовления полной резервной копии, например, в пятницу:

    Пятница 1, (используйте ленту 1 для первой полной резервной копии).


    [root@deep /]# cd /


    [root@deep /]# tar cpf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home

    Понедельник, (используется лента 2 для добавочной резервной копии).


    [root@deep /]# cd /


    [root@deep /]# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home

    Вторник, (используется лента 3 для добавочной резервной копии).


    [root@deep /]# cd /


    [root@deep /]# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home

    Среда, (используется лента 4 для добавочной резервной копии).


    [root@deep /]# cd /


    [root@deep /]# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home

    Четверг, (используется лента 5 для добавочной резервной копии).



    [root@deep /]# cd /

    [root@deep /]# tar cpNf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home

    Пятница 2, (используется лента 6 для полной резервной копии).

    [root@deep /]# cd /

    [root@deep /]# tar cpf /dev/st0 --label=" full-backup created on `date '+%d-%B-%Y'`." --directory / home


Далее, делаем добавочные резервные копии на лентах со 2 по 5 и так далее.

Опция “c” определяет, что мы создаем архивный файл.
Опция “p” сохраняет права доступ.
Опция “N” делает добавочную резервную копию и запоминает файлы новее чем DATE.
Опция “f” говорит, что следующий аргумент будет либо имя архивного файла, либо имя устройства на которое производится запись.

Объясним как мы получили имя файла, который содержит текущую дату: просто поместите команду “date” между обратными кавычками. К основному имени добавляется суффикс “tar” для не сжатых архивов, и суффикс “tar.gz” для сжатых. Так как мы не определяем конкретное имя для файла резервной копии, то воспользуемся опцией "--label", которая позволяет записать некоторую информацию в архивный файл. В заключении мы определяем, что только файлы из каталога "/home" будут записаны на ленту.

Так как лента это устройство посимвольного ввода, мы не можем определить имя файла. Поэтому, в качестве аргумента для опции “имя файла” программы tar используется просто имя устройства, "/dev/st0". Устройство “/dev/st0" не перематывается после создания резервной копии; поэтому, мы имеем возможность записать на одну ленту несколько сессий. Вы можете, также сказать устройству “/dev/st0”, автоматически перемотать ленту после окончания записи резервной копии. При работы с лентой, вы можете использовать следующие команды для перематывания и извлечения ленты из устройства:
[root@deep /]# mt -f /dev/st0 rewind

[root@deep /]# mt -f /dev/st0 offline

ПРЕДОСТЕРЕЖЕНИЕ. Для уменьшения пространства занимаемого tar архивом, резервная копия может быть сжата при помощи опции “z” программы tar. К сожалению, использование этой опции может создать ряд проблем. Из природы работы сжатия следует, что если хотя бы один бит будет испорчен, то и все данные нужные для восстановления будут потеряны. Поэтому рекомендуется не использовать сжатие (опция “z”) для создания резервной копии при помощи команды tar.

Если ваша резервная копия не помещается на ленте, то вам надо использовать опцию --multi-volume (-M) для создания многотомных архивов:
[root@deep /]# cd /




[root@deep /]# tar cMpf /dev/st0 /home

Prepare volume #2 for /dev/st0 and hit return:

После того, как вы создали резервную копию, вы должны убедиться, что все OK, используя опцию --compare (-d):
[root@deep /]# cd /

[root@deep /]# tar dvf /dev/st0

Для резервного копирования всей системы используйте следующую команду:
[root@deep /]# cd /

[root@deep /]# tar cpf /archive/full-backup-`date '+%d-%B-%Y'`.tar \

--directory / --exclude=proc --exclude=mnt --exclude=archive \

--exclude=cache --exclude=*/lost+found .

Опция ”--directory” говорит tar, что до начала резервного копирования надо перейти в следующий каталог (в нашем примере “/”). Опция “--exclude” говорит tar не создавать резервные копии заданных каталогов и файлов. Символ “.”, находящийся в конце командной строки говорит tar, что он должен копировать все в текущем каталоге.

ПРЕДУПРЕЖДЕНИЕ. Когда вы создаете резервную копию вашей системы, не включайте в нее псевдофайловую систему "/proc"! Файлы "/proc" не настояшие файлы, это просто файлоподобные ссылки к структуре ядра. Также не включайте каталоги “/mnt”, “/archive” и все “lost+found”.


Содержание раздела