Я ежедневно делаю резервную копию своего веб-сервера Debian. Полное резервное копирование в воскресенье и дифференциация по дням недели.
Резервное копирование выполняется с помощью Tar. Я делаю резервную копию всей системы в Tar-файл.
Если жесткий диск на моем веб-сервере выходит из строя, я храню все свои резервные копии в надежном месте.
Но как лучше всего выполнить восстановление на «голый металл» на новом жестком диске с дифференциальной резервной копией, сделанной накануне? Могу ли я загрузиться с загрузочного компакт-диска, а затем отформатировать новый жесткий диск и разархивировать на него файл резервной копии? Как мне это сделать?
РЕДАКТИРОВАТЬ:
Это мой сценарий резервного копирования:
#!/bin/sh
# Backup script
BACKUPDIR="/backups"
BACKUPFILE=$BACKUPDIR/backup_$(date +%y-%m-%d).tgz
if [ ! -d $BACKUPDIR ]; then
mkdir $BACKUPDIR
fi
if [ -f $BACKUPFILE ]; then
echo "Backup file already exists and will be replaced."
rm $BACKUPFILE
fi
apt-get clean
tar czpf $BACKUPFILE --same-owner \
--exclude=$BACKUPDIR \
--exclude=/boot/grub/menu.lst* \
--exclude=/home/error.log \
--exclude=/proc \
--exclude=/media \
--exclude=/dev/* \
--exclude=/mnt \
--exclude=/sys/* \
--exclude=/cdrom \
--exclude=/lost+found \
--exclude=/var/cache/* \
--exclude=/tmp / 2>/home/error.log
Простого восстановления жесткого диска будет недостаточно, вы, вероятно, захотите и свою загрузочную запись, которая, как я думаю, не существует в вашей резервной копии (я ошибаюсь? Для вас лучше, если я сделаю!) ...
Не предполагайте, что вы довели сервер до такой степени, что он может загрузиться (я лично предпочитаю создавать дополнительный раздел, подключенный к /boot
который будет иметь kernel
и initrd
с участием busybox
или что-то подобное для выполнения основных задач обслуживания). Вы также можете использовать live CD с вашим дистрибутивом Linux.
Установите свое будущее root partition
где-нибудь и восстановить резервную копию.
tar
был создан для лент, поэтому он поддерживает добавление в архив файлов с тем же именем. Если вы использовали этот метод просто untar -xvpf backup.tar -C /mnt
в противном случае вам нужно будет восстановить резервную копию «последнего воскресенья» и применить соответствующие части до нужного дня.
Вы должны иметь в виду, что есть много вещей, которые не следует делать резервную копию, например: /proc
, /dev
, /sys
, /media
, /mnt
(и, возможно, еще несколько, которые зависят от ваших потребностей). Вам нужно будет позаботиться об этом перед созданием резервной копии, иначе это может стать серьезной проблемой в процессе восстановления!
Есть много моментов, которые вы можете легко упустить с помощью этого метода резервного копирования для всего сервера:
Некоторые хорошие моменты об этом методе можно найти на Ubuntu Wiki: BackupYourSystem / TAR. Ищите Восстановление.
Кстати:
puppet
или chief
, поэтому единственное, о чем вам следует заботиться, это реальные данные)P.P.S
Я рекомендую прочитать пару Джефф Этвуд сообщения о резервных копиях http://www.codinghorror.com/blog/2008/01/whats-your-backup-strategy.html и http://www.codinghorror.com/blog/2009/12/international-backup-awareness-day.html
если дифференциальное резервное копирование не является обязательным, лучшим вариантом для резервного копирования / восстановления без операционной системы является ddrescue: http://www.gnu.org/software/ddrescue/ddrescue.html
Посмотри на http://www.mondorescue.org/ поскольку он может выполнять резервное копирование в Интернете без выключения машины.