Pull to refresh

Comments 45

Спасибо, занес на всякий случай в закладки. Но если честно, то такое интимное дело как бекап, я люблю делать сам. Что бы потом головой об стенку не биться из за какой нибудь баги :) Если уж с бекапами что то будет не так, то пусть это будет целиком и полностью моя вина. Но это исключительно MyWay :)
UFO just landed and posted this here
А где собственно настройка сервера? Тема ведь называется «Настройка резервного копирования Linux-севера за 5 минут». Пример в студию.
Все настройки хранятся в файле /etc/backup-manager.conf, вот основные его параметры:

# Папка, в которой архивы будут складываться локально
export BM_REPOSITORY_ROOT="/var/archives"

# Используемые методы резервного копирования
export BM_ARCHIVE_METHOD="tarball-incremental mysql svn"

# Далее для каждого из выбранных выше методов резервного копирования задаем настройки
# Список папок, содержимое которых будем бэкапить
BM_TARBALL_TARGETS[0]="/etc"
BM_TARBALL_TARGETS[1]="/boot"
BM_TARBALL_TARGETS[2]="/var/www"
export BM_TARBALL_TARGETS

# Список исключений, то есть файлов в перечисленных выше папках, которые бэкапить не нужно
export BM_TARBALL_BLACKLIST="/dev /sys /proc /tmp *imagecache*"

# Теперь указываем как часто делать мастер-бэкап и инкрементный бэкап
export BM_TARBALLINC_MASTERDATETYPE="weekly"
export BM_TARBALLINC_MASTERDATEVALUE="1"

# Для бэкапа MySQL баз данных указываем какие базы бэкапить и параметры mysql-юзера
export BM_MYSQL_DATABASES="__ALL__"
export BM_MYSQL_ADMINLOGIN="user"
export BM_MYSQL_ADMINPASS="1234"

# Для бэкапа subversion-репозитория указываем путь к хранилищу
export BM_SVN_REPOSITORIES="/var/repositories"

# Выбираем метод аплоада созданного бэкапа а удаленный сервер
# (еще есть варианты ftp, ssh, ssh-gpg, rsync)
export BM_UPLOAD_METHOD="s3"

# Для копирования копий на Amazon S3 задаем имя корзины, access key и secret key
export BM_UPLOAD_S3_DESTINATION="basket-name"
export BM_UPLOAD_S3_ACCESS_KEY="ABC123"
export BM_UPLOAD_S3_SECRET_KEY="DEF456"


Это самые основные настройки, в самом конфиге есть еще пара десятков параметров, все они подробно прокомментированы.
Чем меньше времени потрачено на настройку, тем больше уйдёт на восстановление :)
«Linux-север» — пингвины освоили второй полюс? )
Хмм, на первый взгляд достаточно удобно и просто: выбрал что, как и куда — и оно уже там.
Автоматизация сбора данных для бэкапа — задача отличная, но бездумно автоматически писать бэкапы и спать спокойно можно будет только после проверки того, что забэкапилось. имхо.
UFO just landed and posted this here
Возможно я не совсем внятно просто написал, но суть та же. Можно написать свои скрипты или взять готовые, только все это будет бесполезно, если не проверять, что эти скрипты набэкапили.
В случае если ты сам себе хостер приходится или самому писать скрипты, или искать готовое решение. Эти скрипты я протестировал и убедился в их надежности, но, разумеется, минимум раз в неделю необходимо будет проверять корректно ли делаются копии.
имхается мне что в современном мире актуальнее сервера виртуализировать и, соответственно, оставлять бэкап на совести средств виртуализации
другой вариант: github.com/astrails/safe

так же конфигурируется за 5 минут.

поддержка:
multiple archives of: mysql, postgresql, files (with tar), and subversion (svndump)
backup to: local, sftp, s3
+ encrypt with gnupg (key or password)
+ backup rotation

А теперь — самое главное! Есть ли у этого ПО какие-нибудь средства для того чтобы в считанные секунды после сбоя (или хотя бы минуты) восстановить из бекапа данные обратно в систему. Или опять все ручками самостоятельно искать и заливать?
Очевидно, что ответ нет. Не того это класса ПО. Но достать бэкапы и развернуть их на новом сервере можно будет за час, максимум два (это если а) есть этот самый новый сервер и б) настроены внешние системы мониторинга и падение сервера будет замечено сразу, а не через полдня). Думаю для нужд большинства разработчиков это приемлемый даунтайм. В ином случае, заботиться нужно не о резервном копировании, а о повышении отказоустойчивости системы, а это уже совсем другая задача.
Если использовать формат dar, то теоретически можно — для него есть специальные программы просмотра архивов и можно рукама или скриптом, пользуясь только dar, выбрать нужные файлы за нужную дату. Для tar — скорее всего нет.

Но речь о секундах или минутах может идти только при бесконечно выской ширине канала от бэкапа до сервера.
Настраивал по этой статье несколько лет назад, и вот настал тот самый момент опробовать восстановление.
Оставлю здесь, так как пришлось немного покопаться чтобы подобрать нужные ключи:

tar --extract --gzip --directory /mnt/root --verbose --incremental --file hp-bin.20190901.master.tar.gz
tar --extract --gzip --directory /mnt/root --verbose --incremental --file hp-bin.20190908.tar.gz

tar --extract --gzip --directory /mnt/root --verbose --incremental --file hp-bin.20190915.tar.gz

Ну и так для всех бэкапированных директорий, начиная с наиболее свежего мастера и завершая последним инкрементом.
Предполагается, что в /mnt/root подключен новый диск, на который восстанавливается бэкап
А теперь не самое главное. Как проверить, что бэкапирование идёт нормально и можно будет восстановиться из архивов?

И моё мнение: пользоваться можно будет, когда версия 0.7 станет stable — потому что «Since version 0.7.1, Backup Manager supports dar archives.»
Проверять только руками, а какие могут быть альтернативы?

И моё мнение: пользоваться можно будет, когда версия 0.7 станет stable

К сожалению, последняя стабильная версия не поддерживает копирование архивов на S3.
s3 вообще говоря не для всех, а вот ограничение на 2 гигабайта — это неудобно.
s3 вообще говоря не для всех

Спорное утверждение, на мой взгляд зарегистрировать аккаунт на Амазоне проще чем ставить где-то (в идеале в датацентре отличном от того, в котором стоит «бэкапируемый» сервер) еще одну железяку, чтобы переносить на нее данные по FTP.

а вот ограничение на 2 гигабайта — это неудобно

А где такое ограничение?
А, да, увидел:

Slice archives to 2 GB if using dar archives format.

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

Основной формат для архивов — tar — не поддерживает хранение архивов в нескольких файлах, то есть архив будет большим. В 0.7.1 появилась возможность создавать архивы в формате dar — который, кроме всего прочего, позволяет разбивать архивы на маленькие фрагменты. Например, можно делать файлы архивов в размер CDROM или DVD или вообще дискеты.
Спасибо, очень своевременная статья, хотел бекапится именно на S3 который уже используется в проекте.
А почему не подошел BackupPC как бэкап-сервер?

Из функционала:
  • поддерживает Windows, Linux, Mac OS
  • практически не требует инсталляции на клиенте
  • полные и инкрементные бэкапы
  • идентичные файлы в разных бэкапах разных систем не дублируются
  • и прочие прелести...
а BackupPC уже научился бэкапить mysql? Ну и для него, не забываем, нужен отдельный сервер.
ну в принципе да: тут вот дискуссия по поводу

конечно же, Backuppc (мое сугубо субъективное мнение) идеальное решения для бэкапов целого зоопарка систем как пользовательских так и серверных…
ну какое же он идеальное. Это решение для предприятия с быстрыми каналами. Представьте, что надо гигабайт мелких файлов передать на восстанавливаемую систему — это уже не минуты и часы будут. Или как унести его бэкап на DVD диске. Или что будет, если бэкапный сервер сам накроется. Или как его заставить писать не на локальную файловую систему, а не FTP сервер. Или не придётся ли столкнуться с проблемой миллионов файлов.

Я его для windows и linux использую, конечно, но отдельностоящий сервер им бэкапить неудобно.
а отчеты слать в мониторинг\почту\jabber оно умеет?
Если при запуске оно выдает какую-то отладочную информацию, то можно в crontab'е указать MAILTO= и тогда вся эта информация будет приходить к вам на почту.
UFO just landed and posted this here
UFO just landed and posted this here
А чем собственно не устраивает fsbackup для создания копий? В backup-manager очень неудобно настраивается порядок создания полной и инкрементальной копии. Полную копию можно создавать либо раз в неделю, либо раз в месяц. А если я хочу создавать каждые две недели полную копию, причем в crontab запуск будет не каждый день, а через день?

Будут ли сохраняться старые копии, или по сути будет только один текущий цикл храниться?

Я не увидел какого-то плюса от его использования, кроме поддержки Amazon S3

Он не не устраивает, просто изначально я вообще не знал о том какие есть инструменты для решения этой задачи, по этому по запросу в гугле я нашел эту страницу и испытал перечисленные на ней утилиты на предмет работоспособности и соответствия моим требования. Кстати, насколько я понял ни fsbackup, ни rsnapshot не копируют данные на S3, а это для меня было одним из ключевых требований.
Подскажите, а использование встроенной в webmin возможности создания бэкапов — это хорошо или плохо?
О, сколько я подобных вещей перепробовал, пока не понял что быстрее самому написать все инструменты, чтобы они работали так, как тебе нужно, чем добиваться нужного функционала от готовых решений, которые заведомо не знают о твоих нюансах.

А бэкап БД — вообще отдельная тема.

Админы, не ленитесь писать скрипты автоматизации — это очень легко, даже если вы не программист.
Сначала полез допиливать описываемое решение, но потом понял, что свой велосипед лучше :). За 10 минут набросал вот такой скриптик для бекапирования ноута. Он архивирует указанные директории, шифрует AES-ом и закидывает на Dropbox. Для десктопа самое оно:
  1. #!/bin/bash
  2.  
  3. TARGETS="/boot /etc /root"
  4. mount /boot
  5.  
  6. for i in $TARGETS; do
  7. filename=$(echo $i | sed 's/\//-/g'); #убираем / в имени файла
  8. tar -czPf /var/archives/`echo $HOSTNAME`$filename-`date +%Y%m%d`.tar.gz $i; # e.g. gbox-etc-20100314.tar.gz
  9. done
  10.  
  11. for i in `ls /var/archives/`; do
  12. gpg -e --symmetric --cipher-algo AES --batch --passphrase «Your_Password» /var/archives/$i; # шифруем
  13. mv /var/archives/$i.gpg /home/allein/Dropbox/archives/; # шифрованные файлы закидуем на Dropbox
  14. rm -f /var/archives/$i; # остальное удаляем
  15. done
  16.  
  17. umount /boot

______________________
Текст подготовлен в Хабра Редакторе от © SoftCoder.ru

Выставляем chmod и прописываем в крон.
Респект, столько интересных решений в комментах, завтра что-нибудь попробую. Сейчас есть самописный скрипт (из 2х строк, скриптом-то не назовёшь), который требует доделывания.
Авторам в голову надо вбить гвоздь.
В половине мест — пути абсолютные, в половине — относительные.
Весь ворох скриптов устанавливается посредством модного make-файла — не работающего, правда, не из-под чего, кроме линукса — но поправить системные пути из того же make-файла уже непосильная задача.

Зато — «Backup Manager 0.7.9 released», зато — «This release fixes 7 known bugs found in version 0.7.8.»

Пионерия на марше.

Скажите, а как восстанавливать данные из инкрементального бекапа?
Т.е. допустим есть мастер-бекап на воскресенье и инкрементальный на вторник, в среду всё поломалось и надо восстанавить из бекапа во вторник. Как это можно сделать?
По ссылке на backup manager выдает сайт на китайском о выращивании урожая в саду
Сайт по ссылке из статьи — уже не тот…
Делал резервные копии с помощью встроенного функционала в панель ISP Manager с отправкой файлов в Яндекс Диск. У этого способа тоже есть недостатки.
Sign up to leave a comment.

Articles