LinuxForum.Fans
Тема

Как создать бэкап системы ?

Автор: lone_wolf 30 сообщений 6265 просмотров
#342985

Всем привет, вообщем предлагаю обсуждать здесь способы создания бекапа сиcтемы, etc.
Меня интересует следующий вопрос:
Вот допустим сделал я бэкап системы при помощи tar, вот так :

text
tar -cvzpf /mnt/backup/backup_2013.tar.gz /

затем взял новый хард и создал на нем эдентичные разделы с нужной ФС, и развернул с тарбола бэкап. Вопрос заключается в следующем: нужно ли мне что то есче делать для того чтоб у меня завелась ситема, после ребута (ну то что поправить сразу fstab на новый UUID это ясно), я так понимаю grub успешно перенесся ?
или нужно есче в добавок ко всему делать бэкап MBR:

text
dd if=/dev/sda of=/mnt/backup/mbr-backup bs=512 count=1

а затем MBR разворачивать на новый диск

text
dd if=/mnt/backup/mbr-backup of=/dev/sda bs=512 count=1

ну и затем уже разворачивать сам бэкап системы ?

#342994

man dump ?

#342995
dyasny написал:
man dump ?

намек понял, пошёл читать :D

#342999
"dyasny" написал:
man dump ?
при чём тут это? Сами-то читали?
"lone_wolf" написал:
нужно ли мне что то есче делать для того чтоб у меня завелась ситема

вот например: http://help.ubuntu.ru/wiki/%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_grub
для Ъ

Теперь перейдем в окружающую среду chroot:

sudo chroot /mnt

Теперь необходимо установить GRUB, используя команду:

grub-install /dev/sda

а вот использовать dd НЕ нужно в этом случае.

И да, вот вы "создали разделы", а вы их смонтировали перед восстановлением?

Если у вас всего два раздела

text
/dev/sda1 / ext4 defaults 1 1
/dev/sda2 /home ext4 defaults 1 2

вам следует
1. создать /mnt/rootfs/
2. смонтировать /dev/sda1 к /mnt/rootfs/
3. смонтировать /dev/sda2 к /mnt/rootfs/home/
4. развернуть бекап в /mnt/rootfs/ (если вы делаете всё на одной системы, то у вас это будет скорее всего /dev/sdb{1,2}, причём при создании бекапа в /mnt/ НЕ должно быть смонтированной /mnt/rootfs/ и файла /mnt/backup_disk/backup.tar, можно использовать tar --exclude)
5. смонтировать mount -t proc /proc/ /mnt/rootfs/proc/ (конечно при бекапе /proc тоже НЕ нужно включать в бекап)
6. выполнить chroot /mnt/rootfs/ (архитектуры естественно должны полностью совпадать. Да и вообще системы должны быть максимально похожи. После этой команды ядро остаётся тем же, модули те же, но ВСЕ файлы уже из ДРУГОЙ системы. Т.е. убунта 13го года похоже на Gentoo 12го, но вот с убунтой 2006го возможны проблемы)
7. внутри выполнить grub-install /dev/sda (тут надо учитывать, что sda потом будет называться так, как написано в /etc/fstab. Ну если вы UUID поправили, то это вроде и не важно). Либо /sbin/lilo
8. выполнить exit, и попробовать перезагрузится.

удачи.

ЗЫЖ пишите о проблемах, только дистрибутив не забудьте указать.

#343045
drBatty написал:
Показать
[quote="dyasny"]man dump ?
при чём тут это? Сами-то читали?
"lone_wolf" написал:
нужно ли мне что то есче делать для того чтоб у меня завелась ситема

вот например: http://help.ubuntu.ru/wiki/%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_grub
для Ъ

Теперь перейдем в окружающую среду chroot:

sudo chroot /mnt

Теперь необходимо установить GRUB, используя команду:

grub-install /dev/sda

а вот использовать dd НЕ нужно в этом случае.

И да, вот вы "создали разделы", а вы их смонтировали перед восстановлением?

Если у вас всего два раздела

text
/dev/sda1 / ext4 defaults 1 1
/dev/sda2 /home ext4 defaults 1 2

вам следует
1. создать /mnt/rootfs/
2. смонтировать /dev/sda1 к /mnt/rootfs/
3. смонтировать /dev/sda2 к /mnt/rootfs/home/
4. развернуть бекап в /mnt/rootfs/ (если вы делаете всё на одной системы, то у вас это будет скорее всего /dev/sdb{1,2}, причём при создании бекапа в /mnt/ НЕ должно быть смонтированной /mnt/rootfs/ и файла /mnt/backup_disk/backup.tar, можно использовать tar --exclude)
5. смонтировать mount -t proc /proc/ /mnt/rootfs/proc/ (конечно при бекапе /proc тоже НЕ нужно включать в бекап)
6. выполнить chroot /mnt/rootfs/ (архитектуры естественно должны полностью совпадать. Да и вообще системы должны быть максимально похожи. После этой команды ядро остаётся тем же, модули те же, но ВСЕ файлы уже из ДРУГОЙ системы. Т.е. убунта 13го года похоже на Gentoo 12го, но вот с убунтой 2006го возможны проблемы)
7. внутри выполнить grub-install /dev/sda (тут надо учитывать, что sda потом будет называться так, как написано в /etc/fstab. Ну если вы UUID поправили, то это вроде и не важно). Либо /sbin/lilo
8. выполнить exit, и попробовать перезагрузится.

удачи.

ЗЫЖ пишите о проблемах, только дистрибутив не забудьте указать.

[/quote]
вопрос был пока что чисто для того чтоб понимать общую картину. Да про то что /proc/ и т.д не нужно бекапить я читал, + я сохраняю диск (cd/dvd) после разворачивания системы чтоб если что у меня была этаже ОС для восстановления в дальнейшем :)
Думаю в ближайшее время попробую забэкапить и развернуть для эксперимента *SCRATCH*
#343046
drBatty написал:
[quote="dyasny"]man dump ?
при чём тут это? Сами-то читали?[/quote]
я думаю он дал ответ на 1-ое моё предложение

вообщем предлагаю обсуждать здесь способы создания бекапа сиcтемы, etc.

З.Ы. не в тему но а что означат

для Ъ

явно это не слайл с показом языка :D

#343047
"lone_wolf" написал:
я думаю он дал ответ на 1-ое моё предложение

не дал. Утилиту dump давно не используют, разве что в серверах, которые 20 лет не перезагружались...

"lone_wolf" написал:
а что означат

true/ИСТИННЫЙ(ага, большими буквами)/Православный.

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

Потому я ему напоминаю то, что безусловно ему известно, но это такая банальность, про которую он просто позабыл, в силу её незначительности и вообще никчёмности.

#343050

"lone_wolf" написал:
явно это не слайл с показом языка
в какой-то мере, ВНЕЗАПНО, это и есть такой смайл.
#343080

кстати как малой кровью сохранить все границы разметок дисков (цилиндеры)
чтоб потом идентично создать?

чтоб не записывать все цыфры из sudo fdisk -l

#343084

ой чую щаз запинают... но все же, может подойдет dd if=/dev/sda of=/dev/sdb bs=512 count=1 и дальше форматировать появившиеся разделы?

#343088

"moshell" написал:
кстати как малой кровью сохранить все границы разметок дисков (цилиндеры)
чтоб потом идентично создать?
dd
а зачем вам это? Если ваш диск навернётся, то на новом будет совсем другая геометрия.

Ну а от кривых рук НИЧЕГО не поможет, кроме чтения манов. Даже бекап.
#343090
sotariz написал:
ой чую щаз запинают... но все же, может подойдет dd if=/dev/sda of=/dev/sdb bs=512 count=1 и дальше форматировать появившиеся разделы?

ну как по мне так можно сделать в случае ну как я вижу :
делается полное зеркало винта потом оно отключается, подмонтируется для редактирования там логи зачищаем и т.д. а потом тупо делаются бэкапы tar-ом, случае аварии быстренько подключается зеркало и на него разливается бекап с tar.

#343091

"sotariz" написал:
ой чую щаз запинают... но все же, может подойдет dd if=/dev/sda of=/dev/sdb bs=512 count=1 и дальше форматировать появившиеся разделы?
не, всё правильно. Разве что я-бы написал
text
of=backup.mbr

т.е. сохранил-бы в какой-нить файл. А файл куда-нить туда, где мои кривые руки не достанут :)

#343093
"lone_wolf" написал:
делается полное зеркало винта потом оно отключается, подмонтируется для редактирования там логи зачищаем и т.д. а потом тупо делаются бэкапы tar-ом, случае аварии быстренько подключается зеркало и на него разливается бекап с tar.

всё верно. IRL есть только один "маленький" недостаток. В слове "делается". Оно неправильное. Правильное "да ну его нафиг, авось обойдётся".

#343096
"drBatty" написал:
т.е. сохранил-бы в какой-нить файл

согласен, но вопрос был как создать разделы на винте вот и предложил запись сразу на винт :)

#343124

"sotariz" написал:
ой чую щаз запинают... но все же, может подойдет dd if=/dev/sda of=/dev/sdb bs=512 count=1
Я легонечко... Если C:H:S винтов сильно отличаются, кое-кто может оказаться недовольным марсианскими значениями в таблице разделов, например, LILO может захотеть "-P fix" или "-P ignore".
Первая полумера: # sfdisk -d /dev/sda> sda-pt.save и # cat sda-pt.save | sfdisk /dev/sdb
Полумера, поскольку sfdisk не умеет gpt. Вариант с dd его тоже не бэкапит, а оно всё популярнее. GPT можно бэкапить/восстанавливать при помощи gdisk.


ps. И ещё момент. Всё больше носителей (и больше шанс восстанавливать именно на таком), требующих выравнивания разделов. sfdisk этого не умеет. Если на исходном диске разделы не были выровнены, лучше пересоздать fdisk/gdisk-ом по запасенному sfdisk -d и т.п.
#344100

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

Правильно ли я понимаю работу этой утилиты.
Внизу команда делает простую синхронизацию папки /folder1 в /backup/folders.

text
rsync -r -t -vv -z -h  --progress  --delete  /folder1  /backup/folders

Обычно этой командой делают копию папки?
Это инкрементная копия?

Если rsync запускать по крону, синхронизируя каждые полчаса папку /var/vmail в /backup, хватит ли мне добавления одной строчки для выполнения синхронизации каждые полчаса?:

text
30 * * * * rsync -r -t -vv -z -h  --progress  --delete  /var/vmail  /backup/

?

#344101
"AlfaStriker" написал:
Это инкрементная копия?
text
man rsync
...
 --backup-dir=DIR
              In  combination  with  the  --backup  option, this tells rsync to store all backups in the specified directory on the receiving side.
              This can be used for incremental backups.  You can additionally specify a backup suffix using  the  --suffix  option  (otherwise  the
              files backed up in the specified directory will keep their original filenames).
...

P.S. Для инкрементного бэкапа советую rdiff-backup.

"AlfaStriker" написал:
Если rsync запускать по крону, синхронизируя каждые полчаса папку /var/vmail в /backup, хватит ли мне добавления одной строчки для выполнения синхронизации каждые полчаса?:

Только --vv --progress в cron-скрипте явно ни к чему ;)

#344104

А для чего опция --delete в rsync?
На счет этого вопроса все ясно, мне не нужна точная копия каталогов. Удалять почтовые файлы вредно в папке backup.

У меня есть простой скрипт бекапа почты из папки /var/vmail:

text
cat /etc/sysconfig/arc.sh

#!/bin/sh
tar czvf /mnt/backup/mail/mail.$(date +%Y%m%d-%H%M%S).tgz $1
exit $?

Этот скрипт создает архивный файл почты mail.дата.время.tar в папке /mnt/backup/mail.
Я хочу запускать этот скрипт ночью примерно в 00:00 или 02:00.
Для этого добавил задание в /etc/crontab

* 24 * * * /etc/sysconfig/arc.sh /var/vmail

Но не совсем понимаю как запускать скрипт именно в 00:00 или 02:00.

#344108

как-то так:

text

0 2 * * * /etc/sysconfig/arc.sh /var/vmail

/etc/sysconfig - не удачное расположение скрипта.

Войдите или зарегистрируйтесь, чтобы ответить.