Назад | Перейти на главную страницу

Какой лучший метод резервного копирования Linux для домашнего сервера?

В настоящее время я создаю резервную копию своего сервера Fedora Linux, используя rsync и локальный USB-накопитель. Пока что это соответствует моим потребностям, но я подозреваю, что есть более эффективные способы сделать это. Давным-давно я использовал ленту, но резервная копия на ленту большого размера для резервного копирования моего сервера сейчас стоит далеко за пределами моего ценового диапазона. Что-нибудь автоматическое было бы лучше. Хотя я полагаю, что мог бы автоматизировать свой текущий rsync резервного копирования, это означало бы, что USB-накопитель должен быть постоянно включен.

Мысли?

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

Я делаю резервную копию своего сервера с помощью двуличие на amazon S3. Я делаю полную резервную копию каждый квартал и наращиваю ее каждую ночь. Работает неплохо.

я использую rsnapshot который использует rsync и действительно хорошо выполняет инкрементное / полное резервное копирование.

Я написал сценарий оболочки, который запускаю из задания cron для монтирования диска, запускаю rsnapshot, а затем размонтирую диск, чтобы он не монтировался все время.

Вот сценарии, которые я использую. Первый - это /usr/local/sbin/backup.sh, который по сути представляет собой оболочку вокруг сценария, который выполняет реальную работу, фиксирует его вывод и статус выхода, а затем отправляет результаты по электронной почте в root:

#!/bin/sh
#
# Run the dobackup script, capturing the output and then mail it to the
# backup alias person with the right subject line.
#

BACKUP_TYPE=daily
if [ "a$1" != "a" ] ; then
  BACKUP_TYPE=$1
fi

/usr/local/sbin/dobackup.sh ${BACKUP_TYPE} < /dev/null > /tmp/backup.txt 2>&1
RET=$?

SUBJECT="${BACKUP_TYPE} backup for $(hostname) (ERRORS)"
if [ "a$RET" = "a0" ] ; then
  SUBJECT="${BACKUP_TYPE} backup for $(hostname) (successful)"
elif [ "a$RET" = "a2" ] ; then
  SUBJECT="${BACKUP_TYPE} backup for $(hostname) (WARNINGS)"
fi

mail -s "$SUBJECT" root < /tmp/backup.txt

exit $RET

А вот /usr/local/sbin/dobackup.sh - настоящая рабочая лошадка:

#!/bin/sh
#
# Perform the backup, returning the following return codes:
#
# 0 - backup successful
# 1 - errors
# 2 - backup successful, but with warnings.
#

if [ -e /dev/sdb1 ] ; then
  BACKUP_DEV=/dev/sdb1
else
  echo "No backup device available."
  echo "CANNOT CONTINUE WITH BACKUP."
  exit 1
fi

BACKUP_DIR=/mnt/backup
BACKUP_TYPE=daily

if [ "a$1" != "a" ] ; then
  BACKUP_TYPE=$1
fi

echo "Performing ${BACKUP_TYPE} backup."

umount $BACKUP_DEV 2> /dev/null
mount $BACKUP_DEV $BACKUP_DIR
if [ "a$?" != "a0" ] ; then
  echo "Error occurred trying to mount the external drive with the following command:"
  echo "  mount $BACKUP_DEV $BACKUP_DIR"
  echo "CANNOT CONTINUE WITH BACKUP."
  exit 1
fi

date

rsnapshot $BACKUP_TYPE
RET=$?

date

if [ "a$RET" = "a0" ] ; then
  echo "Snapshot performed successfully."
elif [ "a$RET" = "a2" ] ; then
  echo "Snapshot performed, but with warnings."
else
  echo "Snapshot had errors (returned ${RET})."
fi

umount $BACKUP_DIR
if [ "a$?" != "a0" ] ; then
  echo "Error occurred trying to unmount the external drive with the following command:"
  echo "  umount $BACKUP_DIR"
  exit 1
fi

exit $RET

Измените BACKUP_DEV и BACKUP_DIR переменные по своему усмотрению.

я использую грязный делать резервные копии на USB-накопители. У меня есть несколько сценариев, созданных для монтирования активного диска, у меня есть 3, в нужную точку файловой системы, а затем запуска резервных копий.

Dirvish - это просто сценарий Perl, который вызывает rsync со многими параметрами:

  • вы можете хранить много резервных копий, не теряя места
  • у вас простой синтаксис конфигурации
  • восстанавливает очень легко

Большинство ответов в этом вопросе также применимы здесь. Большинство упомянутых инструментов отлично работают в Linux.

Взгляни на rdiff-резервное копирование. Не помешает оставить на USB-накопителе. По крайней мере недорого. В простое они не потребляют много энергии.

Как показывают другие ответы, использование rsync (и / или оболочки вокруг rsync) - это простой способ сделать резервную копию сервера Linux. О чем следует помнить:

  • Выполняется ли резервное копирование данных приложения, которые вам нужны? Если у вас есть база данных, у вас должно быть задание cron, которое регулярно сбрасывает данные. Не гарантируется, что rsync файла действующей системы баз данных даст вам надежную резервную копию.
  • Как часто вы проверяете, сработало ли резервное копирование или ваш USB-диск все еще в хорошем состоянии?
  • Что происходит с удаленными файлами при резервном копировании? Если вы используете что-то вроде rsnapshot, ты, наверное, в порядке. Но если вы используете rsync с --delete вариант, возможно, вы не сможете восстановить файлы, которые не собирались удалять.

Второй локальный диск, вероятно, является самым дешевым вариантом быстрого восстановления файлов в случае выхода из строя основного диска, но он не поможет, если в ваш дом ударит молния (или если ваш дешевый удлинитель перегорит). С таким большим количеством решений резервного копирования за 5 долларов в месяц, неплохо использовать и то, и другое.