Установка backup-manager в CentOS

Backup Manager — законченное открытое решение для организации резервного копирования на Linux и Unix хостах

 Программы   Время чтения: 6 минуты   Просмотров: 15

Установка backup-manager в CentOS

Backup Manager — законченное открытое решение для организации резервного копирования на Linux и Unix хостах, умеет резервировать директории, базы данных MySQL, репозитории SVN. Резервирование происходит по расписанию через CRON, архивы создаются в отдельной директории и хранятся за указанный период, например неделю. Опционально можно из локального резервного копирования сделать копирование на удалённый сервер, по FTP или SSH. Установить его довольно просто

sudo aptitude install backup-manager

Все настройки хранятся в одном конфигурационном файле, который и редактируем

sudo nano /etc/backup-manager.conf В данном примере нас будут интересовать следующие параметры.

#Директория для локального хранения резервных копий
export BM_REPOSITORY_ROOT="/var/archives"

#Владелец файлов и права доступа  
export BM_REPOSITORY_USER="root"
export BM_REPOSITORY_GROUP="root"
export BM_REPOSITORY_CHMOD="770"

#Указываем типы архивирования: инкрементный бэкап и бэкап баз данных  
export BM_ARCHIVE_METHOD="tarball-incremental mysql"

#Метод шифрования архивов — gpg — и ключ шифрования  
export BM_ENCRYPTION_METHOD="gpg"  
export BM_ENCRYPTION_RECIPIENT="MyName (Any text)  (INSECURE!)"

#Тип архивов — tar.gz  
export BM_TARBALL_FILETYPE="tar.gz"

#При архивировании backup-manager не будет следовать по символическим ссылкам  
export BM_TARBALL_DUMPSYMLINKS="false"

#Собственно, то, что буде бэкапить. Перечисляем директории через пробел  
export BM_TARBALL_DIRECTORIES="/etc /home/user0 /home/user1"

#Если в имени директории или файла есть пробел, то можно использовать массив  
BM_TARBALL_TARGETS[0]="/path/with space"  
BM_TARBALL_TARGETS[1]="/path/with space"

#Указываем исключения в случае необходимости (то, что не будем копировать)  
export BM_TARBALL_BLACKLIST="/home/user0/blacklist"

#Настраиваем расписание резервного копирования. Мастер-бэкап (полная копия) будет создаваться каждую неделю, а инкрементные бэкапы — каждый день  
export BM_TARBALLINC_MASTERDATETYPE="weekly"  
export BM_TARBALLINC_MASTERDATEVALUE="1"

#Указываем базы данных MySQL, которые хотим сохранить (можно указать __ALL__ для бэкапа всех баз)  
export BM_MYSQL_DATABASES="__ALL__"

#Данные для подключения к MySQL
export BM_MYSQL_ADMINLOGIN="mysqlusername"
export BM_MYSQL_ADMINPASS="mysqlpassword"
export BM_MYSQL_HOST="localhost"
export BM_MYSQL_PORT="3306"

#Метод сжатия дампов баз данных  
export BM_MYSQL_FILETYPE="bzip2"

Сохраняем изменения в файле и проверяем

sudo backup-manager

Если все нормально, бэкапы создаются, то остается только добавить запуск backup-manager по расписанию в Cron

sudo nano /etc/crontab

Надо добавить строку вида

59 23   * * *   root    backup-manager

Установка backup-manager в CentOS

Качаем свежий пакет Backup Manager с http://www.backup-manager.org/download/

$ wget http://www.backup-manager.org/download/backup-manager-0.6.2.tar.gz

Распаковываем архив

$ tar -xzf backup-manager-0.6.2.tar.gz
$ cd backup-manager-0.6.2

Так как конфигурировать и компилировать тут нечего, инсталлируем

$ sudo bash
# make install
# cp /usr/share/backup-manager/backup-manager.conf.tpl /etc/backup-manager.conf

Конфигурируем

# nano /etc/backup-manager.conf

Мой конфиг:

#/usr/sbin/backup-manager
#  Backup Manager файл конфигурации
#
#  * Файл конфигурации разделён на секции.
#    Секция 'global' обязательная, все остальные
#    можно добавлять по желанию
#  * Кроме этого есть по одной секции на каждый метод
#    резервирования "backup method"
#
# Примечания:
#  * пробелы в именах папок, баз, репозиториев недопустимы
#
##############################################################
##############################################################
# Repository - места хранения архивов
#############################################################
# Где хранить архивы
export BM_REPOSITORY_ROOT="/var/shurup"
# По соображениям безопасности все создаваемые архивы
# будут доступны на чтение и запись только для указанных
# ниже пользователя и группы. Опция рекомендуется в "true"
export BM_REPOSITORY_SECURE="true"
# пользователь и группа владельца архивов
export BM_REPOSITORY_USER="root"
export BM_REPOSITORY_GROUP="root"
##############################################################
# Archives - let's focus on the precious tarballs...
##############################################################
# Number of days we have to keep an archive (Time To Live)
export BM_ARCHIVE_TTL="182"
# Do you want to replace duplicates by symlinks?
# (archive-DAY is a duplicate of archive-(DAY - 1) if they
# are both the same size).
export BM_ARCHIVE_PURGEDUPS="true"
# Prefix of every archive on that box (default is HOSTNAME)
export BM_ARCHIVE_PREFIX="$HOSTNAME"
#
# Метод(ы) создания резервных копий:
# - tarball (полная копия каталогов, сжатая архиватором)
# - tarball-incremental (инкрементальная сжатая копия каталогов)
# - mysql (копия баз данных MySQL)
# - svn (копия svn репозиториев)
# - pipe (копия данных из вывода любой команды)
# - none (ничего не сохранять :)
# несколько методов пишутся через пробелы
export BM_ARCHIVE_METHOD="tarball mysql"
#
##############################################################
# Секция "TARBALL"
# - полная копия каталога, сжатая архиватором
#############################################################
# Формат имени файлов архивов
#     long  : host-full-path-to-folder.tar.gz
#     short : parentfolder.tar.gz
export BM_TARBALL_NAMEFORMAT="long"
# Type of archives, available types are tar, tar.gz, tar.bz2, zip.
export BM_TARBALL_FILETYPE="tar.gz"
# Заменять все мягкие ссылки файлами (не рекомендуется)
export BM_TARBALL_DUMPSYMLINKS="false"
# Директории для резервирования (разделяются пробелом)
# Пример: export BM_TARBALL_DIRECTORIES="/etc /home"
# если каталогов много, проще их записать в столбик вот так:
##export BM_TARBALL_DIRECTORIES="/etc \\
##/usr/local/etc \\
##/usr/local/var/something1 \\
##/usr/local/var/something2 \\
##/usr/local/var/something3"
export BM_TARBALL_DIRECTORIES="/var/www"
# Files to exclude when generating tarballs
export BM_TARBALL_BLACKLIST=""
#
##############################################################
# tarball-incremental
# - инкрементальная сжатая копия каталога
#############################################################
# Как часто сохранять полную копию?
# Возможные значения: weekly (раз в неделю), monthly (раз в месяц)
export BM_TARBALLINC_MASTERDATETYPE="weekly"
# Номер дня в BM_TARBALLINC_MASTERDATETYPE (неделю или месяц),
# когда нужно сохранять полную копию
export BM_TARBALLINC_MASTERDATEVALUE="5"
# Пример: сохранять полную копию каждую пятницу:
# BM_TARBALLINC_MASTERDATETYPE="weekly"
# BM_TARBALLINC_MASTERDATEVALUE="5"
# Пример: сохранять полную копию 1 числа каждого месяца:
# BM_TARBALLINC_MASTERDATETYPE="monthly"
# BM_TARBALLINC_MASTERDATEVALUE="1"
##############################################################
# Backup method: MySQL
# - копия баз данных MySQL
#############################################################
# метод для резервирования баз данных MySQL.
#
# пожалуйста, не используйте tarball вместо MySQL,
# во избежание потери данных.
#
# Список баз данных
export BM_MYSQL_DATABASES="--all-databases"
####LIST="$(mysql -u root -pgfhfcjkmrf -Bse 'show databases')"
####LISTJOIN="${LIST[*]}"
####export BM_MYSQL_DATABASES=$LISTJOIN

# Пользователь MySQL, которому доступны на чтение все базы данных
export BM_MYSQL_ADMINLOGIN="root"
# Пароль этого пользователя
export BM_MYSQL_ADMINPASS="gfhfcjkmrf"
# Хост, на котором запущен MySQL
export BM_MYSQL_HOST="localhost"
# Порт, на котором запущен MySQL
export BM_MYSQL_PORT="3306"
# метод сжатия дампов баз данных (gzip или bzip2)
export BM_MYSQL_FILETYPE="gzip"
# Запустить эту команду после выполнения backup-manager (бэкапа).
export BM_POST_BACKUP_COMMAND="rename.sh"

Запуск производится командой:

#/usr/sbin/backup-manager

Настройка CRON:

1. Создать в папке /etc/cron.daily скрипт для запуска:

# nano /etc/cron.daily/backup-manager

с содержанием:

#!/bin/sh
/usr/sbin/backup-manager

############

Для разрешения запуска скрипта выполнить:

#cd /etc/cron.daily/
#chmod a+x backup-manager

nano /etc/cron.daily/backup-manager

#!/bin/sh
/usr/sbin/backup-manager --verbose

Для разрешения запуска скрипта выполнить:

#cd /etc/cron.daily/
#chmod a+x backup-manager

Ежедневный запуск, отключение отправки почтового отчета на локальный почтовый ящик и пересылка на почтовый ящик Shurupovert@gmail.com #crontab -e добавить строку: MAILTO="mymailto@gmail.com" @hourly /etc/cron.daily/backup-manager >/dev/null 2>&1 3.

Перезапустить демон

crond #/etc/init.d/cron restart

5. Создаем скрипт переименования дампов:

#nano /usr/sbin/rename.sh
#cd /usr/sbin/
#chmod a+x rename.sh
#gedit rename.sh
Вписываем содержание скрипта:
#/usr/sbin/rename.sh Размещение
#!/bin/sh
data=`date +%d.%m.%Y_%H-%M`
datat=`date +%Y%m%d`
host=`hostname`
cd /var/shurup?/
mv ${host}---all-databases.${datat}.sql.gz ${data}.${host}---all-databases.sql.gz
rm -r ${host}-${datat}.md5


Автор: Google
Источник: blanet.ru

Последние страницы

Copyright © 2022 Blanet.Ru. Все права защищены.