将备份数据传输到远程服务器



一:背景介绍mysql

二:创建单向无密码登陆linux

三:脚本内容sql

四:将脚本放到Linux定时任务中数据库




1.1在经过xtrabackup对MySQL数据库进行备份的时候,不只须要本地备份,更须要远程备份,若是硬盘损坏的话,不至于数据所有损坏,而致使没法恢复数据。可是若是使用xtrabackup在对MySQL数据库备份的时候经过流的方式备份并压缩,这样就没法进行正常的增量备份,因此在xtrabackup在备份完毕以后,将备份文件打包压缩,再而后将此压缩包传输到其它服务器中,这样既不影响数据库服务器的正常备份,还能把备份数据传输到另外一台服务器上,增长了数据的可靠性。bash




2.1在远程服务器上生成公钥和私钥 服务器

[root@linuxsvr ~]# ssh-keygen -t rsa

wKiom1VoN5mCeNa6AAHuojpYCN4426.jpg



2.2把公钥传到目标服务器(传输数据的目标服务器)ssh

[root@linuxsvr .ssh]# scp id_rsa.pub root@IP:/root/.ssh/authorized_keys

wKioL1VoOe_CFsNHAABfE6v_Yt8465.jpg



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查看

相关文章
相关标签/搜索