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.
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