Backup Myssql and using rsync 实现备份和传输

大致说下环境吧:

mysql的数据库的地址是 10.254.254.23, 要把数据库备份到本机的其他文件夹下;同时要通过增量备份的方式把备份的数据传输到另外的10.254.254.29的机器上

 

实现方法:

备份本机的mysql:(可以参考: http://my.oschina.net/u/919074/blog/223920)

第一步:在服务器上配置备份目录代码: 

-------------------------------------------------------------------------------- 

mkdir /var/lib/mysqlbackup 

cd /var/lib/mysqlbackup 

-------------------------------------------------------------------------------- 

第二步:编写备份脚本代码: 

-------------------------------------------------------------------------------- 

vi dbbackup.sh 

-------------------------------------------------------------------------------- 

粘帖以下代码,务必更改其中的username,password和dbname。 

代码: 

-------------------------------------------------------------------------------- 

#!/bin/sh

mysqldump -uuser -ppassword dbname | gzip > /var/lib/mysqlbackup/dbname`date +%Y-%m-%d_%H%M%S`.sql.gz

cd  /var/lib/mysqlbackup

   rm -rf `find . -name '*.sql.gz' -mtime 5`  #删除5天前的备份文件

-------------------------------------------------------------------------------- 

第三步:更改备份脚本权限 

代码: 

-------------------------------------------------------------------------------- 

chmod +x dbbackup.sh 

-------------------------------------------------------------------------------- 

第四步:用crontab定时执行备份脚本代码: 

-------------------------------------------------------------------------------- 

vi /etc/crontab

写入:

30 4 * * * /var/lib/mysqlbackup/dbbackup.sh

 

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

以上步骤实现了,把文件备份到本地,那么更安全的方法是把这个文件在远程的机器上也copy一份

所以在10.254.254.29的linux机器上:(可以参考:http://servershuji.blog.51cto.com/1283121/580628/)

首先在10.254.254.29的机器上把要用的文件第一次copy过来,因为用rsync的会有点慢,但是没有文件的更新这个工具会自动识别并copy的,

scp -r [email protected]:/home/DB_BACKUP/ /home/zabbix_backup

然后再10.254.254.29要考虑不能每次copy用密码,所以我们要用ssh的方法生成一个秘钥,让10.254.254.29 完全接受 10.254.254.23,不用输入密码;

方法是:

在29的机器上:

ssh-keygen �Cd 或者 ssh-keygen �Ct rsa

上传到23的root的ssh下面:

ssh-copy-id -i ~/.ssh/id_dsa.pub [email protected]

这样就实现了,在29上执行rsync命令不用输入密码的方法:

然后用下面的命令测试是否需要密码:

rsync -avzH [email protected]:/home/DB_BACKUP/ /home/zabbix_backup

 

然后就是通过计划任务,让这个命令每半个小时同步一次:

vi /etc/crontab

0 */2 * * * root rsync -avzH [email protected]:/home/DB_BACKUP/ /home/zabbix_backup

 

如有什么问题请指正呀!

 

 

 

你可能感兴趣的:(mysql,linux,backup,rsync)