定时将机器A里某mysql数据库备份并传送到机器B

定时将机器A里某mysql数据库备份并传送到机器B

一、需求:

将机器A的myslq某数据库每天定时备份,然后将备份传送到机器B,并在机器B还原数据。
机器A-----生产库
系统:CentOS 6.8;mysql数据库:5.6.36;
机器B-----备库
系统:CentOS 6.8;mysql数据库:5.6.37;

机器A的charge用户和机器B的test用户创建ssh互相信任,避免使用scp命令时需要输入密码;使用ssh-keygen和ssh-copy-id命令实现;需要注意的是.ssh文件夹(700)和公钥文件(600)的权限。

二、机器A:(使用charge用户操作)

在/home/charge/backup目录下创建:
三个文件---backmv.sh、backThingsplus_dev.sh、putBack.sh;
一个文件夹---backhistory;

(1)脚本内容
【1】backmv.sh文件(移动文件)注意脚本的内容从#!/bin/bash开始
#!/bin/bash
/bin/mv /home/charge/backup/thingsplus_dev_*.sql.gz /home/charge/backup/backhistory
【2】backThingsplus_dev.sh文件(备份数据库)注:thingsplus_dev为数据库名
#!/bin/bash
/usr/bin/mysqldump -ucharge -p密码 thingsplus_dev --skip-lock-tables |gzip  > /home/charge/backup/thingsplus_dev_$(date +%Y%m%d_%H%M%S).sql.gz
【3】putBack.sh文件(上传到机器B,因使用了映射的端口,所以需要另外加-P的参数,如果默认为22端口不需要)
#!/bin/bash
/usr/bin/scp -P 60066 /home/charge/backup/thingsplus_dev_*.sql.gz test@机器B的IP:/home/test/backup/backnow

(2)修改脚本的权限
# chmod u+x backmv.sh
# chmod u+x backThingsplus_dev.sh
# chmod u+x putBack.sh

(3)定时(在/home/charge/backup目录下创建)
# crontab -e
1 1 * * * /home/charge/backup/backThingsplus_dev.sh
31 1 * * * /home/charge/backup/putBack.sh
1 2 * * * /home/charge/backup/backmv.sh
注:根据需求设置定时时间;需要开启crond服务,并设置为开机自启动。
# service crond start
# chkconfig crond on
查看
# service crond status
# chkconfig crond --list

三、机器B:(使用test用户操作)

在/home/test/backup目录创建:
四个文件---backcp.sh、backmv.sh、backzip.sh、reduction.sh;
两个文件夹---backnow、backuphistory;

(1)脚本内容
【1】backcp.sh文件(复制)
#!/bin/bash
/bin/cp $(echo $(find /home/test/backup/backnow -name 'thingsplus_dev*')) /home/test/backup/backuphistory
【2】backzip.sh文件(解压)
#!/bin/bash
/bin/gunzip $(echo $(find /home/test/backup/backnow -name 'thingsplus_dev*'))
【3】reduction.sh文件(还原)
#!/bin/bash
/usr/bin/mysql -utest -p密码 back_thingsplus_dev < $(echo $(find /home/test/backup/backnow -name 'thingsplus_dev*.sql'))
【4】backmv.sh文件(移动)
#!/bin/bash
/bin/mv /home/test/backup/backnow/*.sql /home/test/backup/backuphistory

(2)修改脚本的权限
# chmod u+x backcp.sh
# chmod u+x backmv.sh
# chmod u+x backzip.sh
# chmod u+x reduction.sh

(3)定时(在/home/test/backup目录下创建)
# crontab -e
31 2 * * * /home/test/backup/backcp.sh
41 2 * * * /home/test/backup/backzip.sh
51 2 * * * /home/test/backup/reduction.sh
1 4 * * * /home/test/backup/backmv.sh
注:根据需求设置定时时间;需要开启crond服务,并设置为开机自启动。
# service crond start
# chkconfig crond on
查看
# service crond status
# chkconfig crond --list



你可能感兴趣的:(MySQL,mysql项目,mysql实验和项目相关)