mysql异机备份

xx.xx..4.43----xx.xx..4.51

1、配置client通过密钥来连接server

43机器上:

/root/.ssh 目录下执行

ssh-keygen -t rsa

ls  /root/.ssh会发现在/root/.ssh下生成一对密钥id_dsa和id_dsa.pub,将生成的公钥id_dsa.pub拷贝到server的/root/.ssh目录下:

scp  -P 10022 /root/.ssh/id_dsa.pub  xx.xx..4.51:~/.ssh/ id_dsa.pub

51上:

cat id_rsa.pub >>authorized_keys

在43上ssh 登录51 免密登录---ok

 

2、编写备份数据的脚本

可以通过编写shell脚本,执行脚本实质上是一个指令集,它的编写正确与否是实现自动异地备份数据库的关键所在。

假设shell脚本命名为auto.sh,处于目录/home/mysql/autobackup下,脚本编辑如下:

 

DATE=`date +%Y%m%d`

DATEOLD=`date -d"-3 day" +%Y%m%d`

mysqldump  --database mysql>"home/mysql/autobackup/$DATE.sql" -uroot -h localhost –p mysql

tar -czvPf /home/mysql/autobackup/$DATE.tar.gz  /home/mysql/autobackup

scp -P 10022 /home/mysql/autobackup/$DATE.tar.gz xx.xx..4.51:/home/backup1

rm -rf /opt/$DATEOLD.tar.gz

 

针对以上脚本,需要注意以下几点:

u       DATE和DATEOLD是系统用来获取当前以及3天前日期的参数,格式书写十分重要,“`”是指tab键上方的符号,“+”前一定要有空格。

u       client下的目录/opt/backup以及server下的目录/opt/backup1事先要存在

u       压缩指令为tar -czvPf,不加P参数系统会有报错提示,因为此时系统把/opt/backup当成相对路径。       

u       auto.sh的文件属性为755

注:auto.sh中的每一条指令可通过手动执行来验证其正确性,无误后进行下一步操作。

 

 

原文地址:https://www.cnblogs.com/zhxiaoxiao/p/9767600.html