FreeBSD Резервное копирование системы

Поговорим о создании резервной копии нашей системы на FreeBSD тобишь бэкапа.

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

Итак, ближе к делу

В этой статье я приведу один из множества  вариантов организации бэкапа сервера на FreeBSD. Полностью: от создания, до восстановления.

 

Создание бэкапа FreeBSD

Для создания резервной копии нашей системы воспользуемся утилитой dump.

Важное замечание, необходимо чтобы в сервере помимо жесткого диска с системой был вставлен другой физический жесткий диск с примонтированной папкой, куда мы и будем делать бэкап. (Далее в примере это папка BACKUPDUMP)

 

Создадим файл со скриптом на shell в папке /usr/local/etc, который будет делать наш бэкап. И назовем его script_backup.sh

#!/bin/sh
 
# Создаем файл info.txt в котором будет храниться дата создания бэкапа 
date > /BACKUPDUMP/info.txt
# и состояние разделов на момент создания.
df -h >> /BACKUPDUMP/info.txt 
 
# Записываем каждый раздел в отдельный файл бэкапа
dump -0 -L -f - /var  > /BACKUPDUMP/var.img 
dump -0 -L -f - /usr  > /BACKUPDUMP/usr.img 
dump -0 -L -f - /     > /BACKUPDUMP/root.img

Разберем утилиту dump

-0 — делается полный бэкап раздела

-L — дамп снимается с «живой» файловой системы. В корне раздела создается директория .snap куда и делается снимок текущего состояния файловой системы, с помощью которого снимается дамп.

-f — Писать дамп в файл

Не забываем дать скрипту права на выполнение.

chmod 755 script_backup.sh

И положим его в cron,  добавив такую строчку

0 5 10,20,30 * * root /usr/local/etc/script_backup.sh

В 5 утра примерно каждые 10 дней наш скрипт будет выполняться, обновляя файл info.txt и перезаписывая в файлы бэкапы разделов.

 

Восстановление из бэкапа

Не менее важная часть, которую стоит отработать, прежде чем придется столкнуться с ней в реальности.

Для успешного восстановления воспользуемся Frenzy — это Live-CD на базе ОС FreeBSD.

Скачиваем ее здесь и записываем образ на диск или флешку.

Грузимся с диска или с флешки и начинаем восстановление:

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

(ВАЖНО: не удалите случайно данные на жестком диске с файлами бэкапа, лучше на всякий случай на время установки отсоедините его)

Если же вы просто хотите вернуть систему к предыдущему состоянию, то соответственно разделы все уже на месте, поэтому просто восстанавливаем систему из бэкапа:

Итак, мы уже имеем разделы на жестком диске и загрузили Frenzy

По умолчанию он уже примонтировал все разделы (команда «df -h» покажет вам все разделы ),  поэтому делаем так:

Здесь приведен пример восстановления раздела usr, имена разделов будут отличаться от ваших.

Размонтируем раздел

umount /mnt/ad8s1d.ufs

Отформатируем его

newfs /dev/ad8s1d

Примонтируем обратно

mount /dev/ad8s1d /mnt/ad8s1d.ufs

Зайдем в него

cd /mnt/ad8s1d.ufs

И собственно восстановим данные из файла бэкапа

restore -r -f /mnt/ad6s2d.ufs/usr.img

 

Всю процедуру проделываем для каждого раздела. Будьте внимательны названия разделов у вас могут иметь совершенно другие названия. Можно ориентироваться по размеру.

После проделанных действий перезагружаемся с уже восстановленного жесткого диска с системой.

 

Комментарии
  • Добрый вечер.
    Попробовал по вашим методом реализовать бэкап, но не могу понять — по какой-то причине не пишутся файлы img. Основной диск состоит в gmirror. Также хочу делать еще бэкап с зеркального массива. Такой вариант же возможен?
    Спасибо.

Добавить комментарий

Ваш адрес email не будет опубликован.

Sidebar