backup-manager是一个用linux shell编写的命令行备份工具,支持文件及MySQL备份,MySQL备份使用的是mysqldump方式,对于个人站长基本够用了。
貌似它网站在:https://github.com/sukria/Backup-Manager
再加上rsync进行远程的备份数据同步,那就更好了,最起码有一个异地备份。
安装配置Backup Manager
安装
apt-get install backup-manager
配置
配置文件位置:/etc/backup-manager.conf
指定备份文件位置
export BM_REPOSITORY_ROOT="/var/archives/daily"
定义备份任务
export BM_ARCHIVE_METHOD="tarball mysql"
定义备份任务tarball的内容
export BM_TARBALL_DIRECTORIES="/etc /home"
定义MySQL备份内容
############################################################## # Backup method: MYSQl ############################################################# # This method is dedicated to MySQL databases. # You should not use the tarball method for backing up database # directories or you may have corrupted archives. # Enter here the list of databases to backup. # Wildcard: __ALL__ (will dump all the databases in one archive) export BM_MYSQL_DATABASES="__ALL__" # The best way to produce MySQL dump is done by using the "--opt" switch # of mysqldump. This make the dump directly usable with mysql (add the drop table # statements), lock the tables during the dump and other things. # This is recommended for full-clean-safe backups, but needs a # privileged user (for the lock permissions). export BM_MYSQL_SAFEDUMPS="true" # The user who is allowed to read every databases filled in BM_MYSQL_DATABASES export BM_MYSQL_ADMINLOGIN="root" # its password export BM_MYSQL_ADMINPASS="mypassword" # the host where the database is export BM_MYSQL_HOST="localhost" # the port where MySQL listen to on the host export BM_MYSQL_PORT="3306" # which compression format to use? (gzip or bzip2) export BM_MYSQL_FILETYPE="bzip2"
还可以将备份文件上传到其他位置,目前支持:ftp、s3、rsync、ssh-gpg、scp。
运行
可以在crontab中指定
# m h dom mon dow command 0 2 * * * /usr/sbin/backup-manager
使用rsync进行远程同步
再远程备份机器上使用rsync将服务器备份好的数据同步到本地,保留一个异地数据备份,防止灾难发生。
配置SSH自动登录
生成用户密钥
# ssh-keygen -t rsa -C "Jilili's Key"
将公钥发送到服务器,这样下次再登录时就不用输入密码了
cat ~/.ssh/id_rsa.pub | ssh root@cn1.ideais.net "cat - >> ~/.ssh/authorized_keys"
编写同步脚本和建立自动任务
编辑同步脚本,将远程的/opt/和/var/archives/同步到备份设备
$ vi sync-vps-cn1.sh /usr/local/bin/rsync -avlR --delete -e ssh root@cn1.ideais.net:/opt/ /home/jilili/Mirrors/data/cn1.ideais.net/ /usr/local/bin/rsync -avlR --delete -e ssh root@cn1.ideais.net:/var/archives/ /home/jilili/Mirrors/data/cn1.ideais.net/
把脚本加入系统任务调度
$ crontab -e 0 4 * * * /home/jilili/Mirrors/bin/sync-vps-cn1.sh