如何部署备份管理工具?

Backup-Manager

1 安装方法

1.1 手动安装

1.1.1 安装编译环境

yum -y install gcc gcc-c++ make expat-devel

1.1.2 安装解压工具

yum install -y unzip

1.1.3 下载安装包

curl -L https://codeload.github.com/sukria/Backup-Manager/zip/master > ~/Backup-Manager-master.zip

Web地址请参阅:
https://github.com/backup-manager/backup-manager

1.1.4 解压安装包

cd ~
unzip Backup-Manager-master.zip

1.1.5 部署安装包

chmod u+x -R Backup-Manager-master
cd Backup-Manager-master
make install
cp /usr/local/share/backup-manager/backup-manager.conf.tpl /etc/backup-manager.conf

1.1.6 测试运行备份

backup-manager

根据提示解决依赖关系:

Can't locate Sys/Syslog.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /usr/local/share/perl5/BackupManager/Logger.pm line 34.
BEGIN failed--compilation aborted at /usr/local/share/perl5/BackupManager/Logger.pm line 34.
Compilation failed in require at //usr/local/bin/backup-manager-purge line 100.
BEGIN failed--compilation aborted at //usr/local/bin/backup-manager-purge line 100.

安装如下包:

yum install -y perl-Sys-Syslog

1.2 二级制包安装(可选)

yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum install -y backup-manager

注:二进制与rpm包安装使用一种即可

1.3. 使用方法

1.3.1 配置文件

vim /etc/backup-manager.conf

注:默认的配置文件仅可用于测试,如果需要执行备份任务请根据配置文件解析修改配置后再执行

1.3.2 定时备份

crontab -e

加入如下行:

0 3 */1 * * /usr/local/sbin/backup-manager

注:每天3:00执行一次备份

2.2 配置文件解析

##############################################################
# 存储库配置
##############################################################
# 定义存储归档文件的位置
export BM_REPOSITORY_ROOT="/var/archives"

# 定义临时放置归档文件的目录
export BM_TEMP_DIR="/tmp"

# 指档案库和生成的文件安全权限
export BM_REPOSITORY_SECURE="true"
export BM_REPOSITORY_USER="root"
export BM_REPOSITORY_GROUP="root"
export BM_REPOSITORY_CHMOD="770"
export BM_ARCHIVE_CHMOD="660"

# 定义档案的保存天数(生存时间)
export BM_ARCHIVE_TTL="5"

# 定义档案的备份频率,可选daily和hourly
export BM_ARCHIVE_FREQUENCY="daily"

# 清除BM_REPOSITORY_ROOT下的顶级归档目录或全部归档
export BM_REPOSITORY_RECURSIVEPURGE="false"

# 以软链接代替MD5值相同的文件
export BM_ARCHIVE_PURGEDUPS="true"

# 定义归档文件的文件名前缀
export BM_ARCHIVE_PREFIX="$HOSTNAME"

# 仅清除由export BM_ARCHIVE_PREFIX定义前缀的归档文件
export BM_ARCHIVE_STRICTPURGE="true"

# 自动定义归档的nice值,由最高级别-20至最低级别19
export BM_ARCHIVE_NICE_LEVEL="10"

# 定义备份的方法
# - tarball
# - tarball-incremental
# - mysql
# - pgsql
# - svn
# - pipe
# - none
export BM_ARCHIVE_METHOD="tarball"

##############################################################
# 加密配置
##############################################################
# 适用于本地备份的GPG,启用加密请注解,仅适用于tar, tar.gz, tar.bz2归档
# export BM_ENCRYPTION_METHOD="gpg"
# export BM_ENCRYPTION_RECIPIENT="0x1EE5DD34"
# export BM_ENCRYPTION_RECIPIENT="Alexis Sukrieh"
# export BM_ENCRYPTION_RECIPIENT="sukria@sukria.net"

##############################################################
# 备份方法: tarball
##############################################################
# 归档文件的格式,长格式和短格式
# 	long  : host-full-path-to-folder.tar.gz
# 	short : parentfolder.tar.gz
export BM_TARBALL_NAMEFORMAT="long"

# 归档文件的可选类型:
#     tar, tar.gz, tar.bz2, tar.xz, tar.lzma, dar, zip.
# 确保压缩的类型相对应
# (bzip2, dar, xz, lzma, ...).
export BM_TARBALL_FILETYPE="tar.gz"

# 选择True则透过SSH备份远端服务器
export BM_TARBALL_OVER_SSH="false"
# BM_UPLOAD_SSH_HOSTS = "x.x.x.x"
# BM_UPLOAD_SSH_USER = "root"
# BM_UPLOAD_SSH_KEY = "~/.ssh/id_rsa.pub"
# BM_TARBALL_DIRECTORIES

# 选择true则由备份软链接改为备份软链接所指的文件
export BM_TARBALL_DUMPSYMLINKS="false"

# 定义使用空格分隔需要备份的路径
# export BM_TARBALL_DIRECTORIES="/etc /boot"

# 使用数据定义需要备份的路径
declare -a BM_TARBALL_TARGETS
BM_TARBALL_TARGETS[0]="/etc" 
BM_TARBALL_TARGETS[1]="/boot"
export BM_TARBALL_TARGETS

# 备份排除的绝对或相对路径,允许使用通配符
export BM_TARBALL_BLACKLIST="/dev /sys /proc /tmp"

# 定义dar类型单个归档文件的极限大小
export BM_TARBALL_SLICESIZE="1000M"

# 定义tarball的命令行参数
export BM_TARBALL_EXTRA_OPTIONS=""

##############################################################
# 备份方法: tarball-incremental
#############################################################
# 定义增量备份的类型(可选值weekly, monthly)和具体类型对应的值
export BM_TARBALLINC_MASTERDATETYPE="weekly"
export BM_TARBALLINC_MASTERDATEVALUE="1

##############################################################
# 备份方法: MySQL
#############################################################
# 定义指定的数据库列表
export BM_MYSQL_DATABASES="__ALL__"

# 开启安全dump
# 需要具有锁定权限MySQL用户配合
export BM_MYSQL_SAFEDUMPS="true"

# 具有备份权限的数据库用户信息
export BM_MYSQL_ADMINLOGIN="root"
export BM_MYSQL_ADMINPASS=""

# 数据库所在的服务器信息
export BM_MYSQL_HOST="localhost"
export BM_MYSQL_PORT="3306"

# 压缩dump文件所用的格式
export BM_MYSQL_FILETYPE="bzip2"
export BM_MYSQL_EXTRA_OPTIONS=""

# 定义MySQLDUMP的命令行参数
export BM_MYSQL_EXTRA_OPTIONS=""

# 指定分别备份每个数据库
export BM_MYSQL_SEPARATELY="true"

# 指定排除的数据库,空格分隔
export BM_MYSQL_DBEXCLUDE=""

##############################################################
# 备份方法: PostgreSQL
#############################################################
# 定义指定的数据库列表
export BM_PGSQL_DATABASES="__ALL__"

# 具有备份权限的数据库用户信息
export BM_PGSQL_ADMINLOGIN="root"
export BM_PGSQL_ADMINPASS=""

# 数据库所在的服务器信息
export BM_PGSQL_HOST="localhost"
export BM_PGSQL_PORT="5432"

# 压缩备份文件所用的格式
export BM_PGSQL_FILETYPE="bzip2"

# 指定排除的数据库,空格分隔
export BM_PGSQL_EXTRA_OPTIONS=""

#############################################################
# 备份方法: svn
#############################################################

# 保存svn存储库的绝对路径
export BM_SVN_REPOSITORIES=""

# 压缩XML文件 
# 压缩可选: bzip2 and gzip
export BM_SVN_COMPRESSWITH="bzip2"

##############################################################
# 备份方法: pipe
#############################################################
declare -a BM_PIPE_COMMAND
declare -a BM_PIPE_NAME
declare -a BM_PIPE_FILETYPE
declare -a BM_PIPE_COMPRESS

# 生成的档案名字
# $BM_ARCHIVE_PREFIX-$BM_PIPE_NAME.$DATE.$BM_PIPE_FILETYPE

# BM_PIPE_COMMAND[0]="ssh host -c \"mysqldump -ufoo -pbar base\"" 
# BM_PIPE_NAME[0]="base" 
# BM_PIPE_FILETYPE[0]="sql"
# BM_PIPE_COMPRESS[0]="gzip"

export BM_PIPE_COMMAND
export BM_PIPE_NAME
export BM_PIPE_FILETYPE
export BM_PIPE_COMPRESS

##############################################################
# 数据备份到远程主机
#############################################################
# 档案备份到远程主机的方法,以下方法可选:
# - scp
# - ssh-gpg
# - ftp
# - rsync
# - s3
# - none
export BM_UPLOAD_METHOD=""

# 定义备份到的远程主机
export BM_UPLOAD_HOSTS=""

# 定义远程主机的存放路径
export BM_UPLOAD_DESTINATION=""

##############################################################
# SSH方法
#############################################################

# 定义远程服务器ssh信息
export BM_UPLOAD_SSH_USER=""
export BM_UPLOAD_SSH_KEY=""
export BM_UPLOAD_SSH_HOSTS=""
export BM_UPLOAD_SSH_PORT=""

# 定义远程主机的存放路径,覆盖export BM_UPLOAD_DESTINATION=""
export BM_UPLOAD_SSH_DESTINATION=""

# 上传前清理归档文件
export BM_UPLOAD_SSH_PURGE="true"

# 定义档案的保存天数(生存时间)
export BM_UPLOAD_SSH_TTL=""

##############################################################
# SSH-GPG方法
#############################################################

# 填写SSH-GPG私钥
export BM_UPLOAD_SSHGPG_RECIPIENT=""

##############################################################
# FTP方法
#############################################################
# 使用FTP安全传输,SSL加密上传,被动模式自动激活
export BM_UPLOAD_FTP_SECURE="false"

# 使用FTP被动模式
export BM_UPLOAD_FTP_PASSIVE="true"

# FTP传输超时(秒)
export BM_UPLOAD_FTP_TIMEOUT="120"

# 开始传输档案前发送2MB测试文件
export BM_UPLOAD_FTP_TEST="false"

# FTP档案库的信息
export BM_UPLOAD_FTP_USER=""
export BM_UPLOAD_FTP_PASSWORD=""
export BM_UPLOAD_FTP_HOSTS=""

# 上传前清楚远程主机上的归档文件
export BM_UPLOAD_FTP_PURGE="true"

# 定义档案的保存天数(生存时间)
export BM_UPLOAD_FTP_TTL=""

# 归档文件保存的路径(覆盖BM_UPLOAD_DESTINATION)
export BM_UPLOAD_FTP_DESTINATION=""

##############################################################
# Amazon S3方法
#############################################################
# S3服务器信息,参阅http://aws.amazon.com
export BM_UPLOAD_S3_DESTINATION=""
export BM_UPLOAD_S3_ACCESS_KEY=""
export BM_UPLOAD_S3_SECRET_KEY=""

# 上传前清楚远程主机上的归档文件
export BM_UPLOAD_S3_PURGE="false"

# 定义档案的保存天数(生存时间)
export BM_UPLOAD_S3_TTL=""

##############################################################
# RSYNC方法
#############################################################
# RSYNC备份的目录
export BM_UPLOAD_RSYNC_DIRECTORIES=""

# RSYNC上传的目的地址
export BM_UPLOAD_RSYNC_DESTINATION=""

# RSYNC远程主机
export BM_UPLOAD_RSYNC_HOSTS=""

# 选择true则由备份软链接改为备份软链接所指的文件
export BM_UPLOAD_RSYNC_DUMPSYMLINKS="false"

# 排除备份的路径
export BM_UPLOAD_RSYNC_BLACKLIST=""

# 定义RSYNC的命令行参数
export BM_UPLOAD_RSYNC_EXTRA_OPTIONS=""

# 传输带宽限制,例如32M,1024K,...
export BM_UPLOAD_RSYNC_BANDWIDTH_LIMIT=""

##############################################################
# 自动刻录-BURNING
#############################################################
# 支持烧录的方法 :
#  - DVD    : DVD介质上刻录归档
#
#  - DVD-RW : 清空DVD介质并烧录归档
#
#  - CDRW   : 清空CDRW并烧录ARCHIVES_REPOSITORY或只是产生的归档文件
#
#  - CDR    : 烧录ARCHIVES_REPOSITORY或只是产生的归档文件
#  - none   : 禁用刻录
export BM_BURNING_METHOD="none"

# 使用MD5校验文件被正确烧录
export BM_BURNING_CHKMD5="false"

# 指定cdrom设备
export BM_BURNING_DEVICE="/dev/cdrom"

# 指定专用烧录设备,覆盖BM_BURNING_DEVICE
export BM_BURNING_DEVFORCED=""

# 使用Joliet光盘镜像
export BM_BURNING_ISO_FLAGS="-R -J"

# 指定媒体的大小极限值
export BM_BURNING_MAXSIZE="650"

##############################################################
# 高级选项
#############################################################
# 开启输出发送到syslog
export BM_LOGGER="true"

# 定义发送到syslog的消息级别,可选值debug,info,warning,error
export BM_LOGGER_LEVEL="warning"

# 定义用户
export BM_LOGGER_FACILITY="user"

# 备份管理器执行任务前执行的命令
export BM_PRE_BACKUP_COMMAND=""

# 备份管理器执行任务后执行的命令
export BM_POST_BACKUP_COMMAND=""

=============================================
https://github.com/sukria/Backup-Manager/
http://www.linuxidc.com/Linux/2015-01/111192.htm

没有评论

发表评论