понедельник, 18 ноября 2013 г.

Backup Linux

Backup Linux

В этой статье я хотел бы рассказать как можно сделать полный бэкап системы с Linux и ее восстановление. 
Существует множество различных средств для бэкапа системы и файлов по отдельности.
вот вкратце, небольшой список чем можно проводить резервное копирование в Linux
1) dd - с помощью этой встроенной команды можно произвести полное резервное копирование диска либо его части на другой диск либо в файл, либо сделать клон диска.
2) partimage - также еще одно утилита для резервного копирования файлов либо создания образа диска в файл.
3) partclone - практически аналог ImagePart.
4)Acronis for Linux -  всем нам известное ПО юля бэкапа, на Centos я так и не смог его завести.
5) tar -  старый добрый tar, также успешно поможет вам забэкапить все ваши файлы.

Из всего вышеперечисленного, честно сказать я не нашел ничего для себя подходящего. Т.к ПО которое мне было необходимо должно было удевлетворять следующим условиям
1) Создание резервных образов разделов в файл + сжатие.
2) Возможность "горячего" онлайн создания образа диска.
3) Восстановление с загрузочного диска (например HirensBoot CD)

И все таки нашел я эту замечательную программку под названием FSARCHIVER, которая удовлетворяет всем выше перечисленным требования, а также уже встроена в HirensBoot CD.

1) Для начала скачаем .rpm пакет отсюда http://sourceforge.net/projects/fsarchiver/files/fsarchiver-bin/0.6.17/

2) Устанавливаем 
[root@serv~]# rpm -ihv fsarchiver-0.6.17-1.el6.i386.rpm

3) Теперь создадим файл backup.sh где пропишем команды, которые будут создавать наши копии разделов, здесь также будет бэкап mbr и таблица разделов
#!/bin/bash
dd if=/dev/sda of=/mnt/backup/mbr_fat/mbr.img bs=512 count=1 #создание копии MBR
/sbin/sfdisk -d /dev/sda >/mnt/backup/mbr_fat/fat.img #создание копии таблицы разделов

#В /mnt/backup монтируется либо сетевой ресурс, либо ваш диск куда вы будете создавать копии
/usr/sbin/fsarchiver -A savefs /mnt/backup/sda1/boot_`date +%d.%m.%Y`.fsa /dev/sda1
/usr/sbin/fsarchiver -A savefs /mnt/backup/sda2/var_`date +%d.%m.%Y`.fsa /dev/sda2
/usr/sbin/fsarchiver -A savefs /mnt/backup/sda3/root_`date +%d.%m.%Y`.fsa /dev/sda3
/usr/sbin/fsarchiver -A savefs /mnt/backup/sda5/usr_`date +%d.%m.%Y`.fsa /dev/sda5
/usr/sbin/fsarchiver -A savefs /mnt/backup/sda6/home_`date +%d.%m.%Y`.fsa /dev/sda6

Первые две строки создают копию MBR и копию списка разделов диска.
Итак что значит следующяя строка
/usr/sbin/fsarchiver -A savefs /mnt/backup/sda6/home_`date +%d.%m.%Y`.fsa /dev/sda6
 Эта строка создает полную копию раздела /dev/sda6 в каталог /mnt/backup/sda6 в файл home_дата_создания.fsa.
Опция -А значит "горячее" резревное копирование во время использования файловой системы.

4) Добавим задание в CRON для автоматиского запуска, при этом предположим что файл backup.sh лежит в /etc/sysconfig/backup.sh
[root@serv~]# chmod 755 /etc/sysconfig/backup.sh --дадим права на запуск скрипта
[root@serv~]#touch jobs --создадим файл jobs, куда пропишем задания для cron
Добавим следующюю строку и сохраним (эта строка будет запускать скрипт бэкапа в воскресенье в 9:00)
[root@serv~]#echo "0 9 * * 7 /etc/sysconfig/backup.sh">>jobs

Вот и все наш скрипт для бэкапа готов. 
Теперь как восстановить это все хозяйство.

Порядок и процедуры восстановления:
1)      Загрузится с HirensBootCD, при загрузке выбрать «Parted Magic» 
2)      Запусть консоль 
3)      Примонтировать на /mnt/backup каталог с резевными копиями 
4)      Восстановить таблицу разделов 
sfdisk /dev/sda < /mnt/backup/proxy/mbr_fat/fat.img 
5)      Востановить MBR запись 
dd if=/mnt/backup/proxy/mbr_fat/mbr.img of=/dev/sda count=1 bs=512
 6)      Восстановить boot (sda1)
fsarchiver restfs /mnt/backup/proxy/sda1/boot_%date%.fsa id=0,dest=/dev/sda1
7)      Восстановить var (sda2)
fsarchiver restfs /mnt/backup/proxy/sda2/var_%date%.fsa id=0,dest=/dev/sda2
8)      Восстановить root (sda3)
fsarchiver restfs /mnt/backup/proxy/sda3/root_%date%.fsa id=0,dest=/dev/sda3
9)      Восстановить usr (sda5)
fsarchiver restfs /mnt/backup/proxy/sda5/usr_%date%.fsa id=0,dest=/dev/sda5
10)  Восстановить home (sda6)
fsarchiver restfs /mnt/backup/proxy/sda6/home_%date%.fsa id=0,dest=/dev/sda6
11)  Восстановить swap (sda7)
mkswap /dev/sda7
swapon /dev/sda7
12)  После полного всостановления диска необходимо восстановить загрузчик (GRUB)
·        Загрузиться с загрузочного DVD Centos 6.2
·        Выбрать язык и раскладку “English” -> “us”. Расположение образа => «жесткий диск  (HDD)” .
·        После загрузки образ диска с системой будет находится в /mnt/sysimage
·        Сменить корень на /mnt/sysimage chroot /mnt/sysimage
·        Проинсталировать grub grub-install
Если загрузчик неработоспособен необходимо написать след конфигурационные файлы для GRUB:

Default=0
Timeout=30
Splashimage=(hd 0,0)/grub/spalh.xpm.gz

Title=Centos 2.6.32-220.el6.i686
 Root (hd0,0)
Kenel /vmlinuz-2.6.32-220.el6.i686 root=(hd0,2)
Intitrd=/initramfs

Для Lilo
Boot=/dev/sda
Map=System.map-2.6.32-220.el6.i686
Default=Linux-2.6.32
Timeout=50

Image=/boot/vmlinuz-2.6.32-220.el6.i686
            Label=Linux-2.6.32
Root=/dev/sda3
Initrd=initramfs-2.6.32-220.el6.i686
   Выполнить lilo –t и lilo

 


 
 
 


Комментариев нет:

Отправить комментарий