mysql服务器定时异地备份
时间:2015-02-25 01:31 来源:linux.it.net.cn 作者:IT
现有一台mysql服务器,需要每天备份到异地。环境,centos5.5 mysql
这个操作的原理:
首先进行本地备份,放到/data目录下面。再用rsync每天定时同步到另一台服务器上。
具体操作
每天本地自动备份,建立脚本/sh/mysqlbackup.sh,内容如下:
#!/bin/sh
rq=` date +%Y%m%d `
BackupPath=/data/wordpress/$rq
mkdir $BackupPath
chmod -R 777 $BackupPath
rm -rf `find /data/wordpress -mtime 3 -print`
/usr/local/mysql/bin/mysqldump –skip-lock-tables -uroot -p12345678 –tab=$BackupPathwordpress
注:wordpress为需要备份的数据库名。在/data/目录下,先建这个目录,以放备份文件。
这个脚本执行完成,会在/data下面自动生成以日期为目录的备份文件,并且会自动删除3天前的备份。
再使用rsync,备份这个目录到另外的服务器50.19.11.2,端口号为1000。建立脚本/sh/rsync.sh,内容如下:
rsync -avzp –delete -e ‘ssh -p 1000′ /data/root@60.10.101.12:/data
再用expect进行自动交互式操作。不需要输入密码,就可以自动执行了。再建立脚本/sh/expcet.sh,内容如下:
#!/bin/bash
expect -c ”
set timeout 1200;
spawn /sh/rsync.sh
expect {
\”*yes/no*\” {send \”yes\r\”; exp_continue}
\”*password*\” {send \”123456\r\“;}
}
expect eof;”
这样只要把/sh/mysqlbackup.sh和/sh/expcet.sh放到crontab里面就可以了。注意一下,本地备份的时间在先,异地同步的时间在后,要大概知道时间差是多少。
(责任编辑:IT)
现有一台mysql服务器,需要每天备份到异地。环境,centos5.5 mysql
这个操作的原理:
首先进行本地备份,放到/data目录下面。再用rsync每天定时同步到另一台服务器上。
具体操作
每天本地自动备份,建立脚本/sh/mysqlbackup.sh,内容如下:
注:wordpress为需要备份的数据库名。在/data/目录下,先建这个目录,以放备份文件。
这个脚本执行完成,会在/data下面自动生成以日期为目录的备份文件,并且会自动删除3天前的备份。
再使用rsync,备份这个目录到另外的服务器50.19.11.2,端口号为1000。建立脚本/sh/rsync.sh,内容如下:
再用expect进行自动交互式操作。不需要输入密码,就可以自动执行了。再建立脚本/sh/expcet.sh,内容如下:
这样只要把/sh/mysqlbackup.sh和/sh/expcet.sh放到crontab里面就可以了。注意一下,本地备份的时间在先,异地同步的时间在后,要大概知道时间差是多少。 (责任编辑:IT) |