將備份數據傳輸到遠程服務器



一:背景介紹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查看

相關文章
相關標籤/搜索