一:背景介绍
二:建立单向无密码登录
三:脚本内容
四:将脚本放到Linux定时任务中
1.1在通过xtrabackup对MySQL数据库进行备份的时候,不仅需要本地备份,更需要远程备份,如果硬盘损坏的话,不至于数据全部损坏,而导致无法恢复数据。但是如果使用xtrabackup在对MySQL数据库备份的时候通过流的方式备份并压缩,这样就无法进行正常的增量备份,所以在xtrabackup在备份完毕之后,将备份文件打包压缩,再然后将此压缩包传输到其它服务器中,这样既不影响数据库服务器的正常备份,还能把备份数据传输到另一台服务器上,增加了数据的可靠性。
2.1在远程服务器上生成公钥和私钥
[[email protected] ~]# ssh-****** -t rsa
2.2把公钥传到目标服务器(传输数据的目标服务器)
[[email protected] .ssh]# scp id_rsa.pub [email protected]:/root/.ssh/authorized_keys
2.3通过ssh的方式登录目标服务器,看是否还需要密码
ssh [email protected]
2.4如果不用密码无法登录到目标服务器有以下几种情况
2.4.1目录.ssh的权限 chmod 700 /path/.ssh
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 [email protected]:$remoteDir #删除本地压缩文件 rm -rf $backupDir/$fileName
4.1创建mysqlcron文件
#每天凌晨3:30执行
30 3 * * */root/scripts/compressed_file.sh
crontab mysqlcron 加入定时任务
crontab -l查看
转载于:https://blog.51cto.com/fanfusuzi/1656488