一:背景介绍mysql
二:创建单向无密码登陆linux
三:脚本内容sql
四:将脚本放到Linux定时任务中数据库
1.1在经过xtrabackup对MySQL数据库进行备份的时候,不只须要本地备份,更须要远程备份,若是硬盘损坏的话,不至于数据所有损坏,而致使没法恢复数据。可是若是使用xtrabackup在对MySQL数据库备份的时候经过流的方式备份并压缩,这样就没法进行正常的增量备份,因此在xtrabackup在备份完毕以后,将备份文件打包压缩,再而后将此压缩包传输到其它服务器中,这样既不影响数据库服务器的正常备份,还能把备份数据传输到另外一台服务器上,增长了数据的可靠性。bash
2.1在远程服务器上生成公钥和私钥 服务器
[root@linuxsvr ~]# ssh-keygen -t rsa
2.2把公钥传到目标服务器(传输数据的目标服务器)ssh
[root@linuxsvr .ssh]# scp id_rsa.pub root@IP:/root/.ssh/authorized_keys
2.3经过ssh的方式登陆目标服务器,看是否还须要密码ide
ssh root@IP
2.4若是不用密码没法登陆到目标服务器有如下几种状况spa
2.4.1目录.ssh的权限 chmod 700 /path/.sshblog
2.4.2authroized_kyes的权限 chmod [600|644] /path/authorized_keys
2.4.3若是修改了以上两个地方还不能达到想要的结果,那么缘由极可能是SELINUX致使的
2.4.3.1临时关闭,重启后失效
setenforce 0
2.4.3.2永久关闭
vi /etc/selinux/config
SELINUX=disabled
3.1脚本内容
#!/bin/bash #本地备份目录 backupDir=/backup #远程目标位置 remoteDir=/root/remote/ #进入到本地备份目录 cd $backupDir #文件名和后缀,文件名为当前时间 fileName=`date +%F-%H-%M-%S`.tar.gz #将/backup目录下的全部内容压缩为fileName tar zcvf $fileName ./* #将压缩文件传输到远程服务器 scp $backupDir/$fileName root@172.16.0.77:$remoteDir #删除本地压缩文件 rm -rf $backupDir/$fileName
4.1建立mysqlcron文件
#天天凌晨3:30执行
30 3 * * */root/scripts/compressed_file.sh
crontab mysqlcron 加入定时任务
crontab -l查看