一:背景介紹
二:建立單向無密碼登錄
三:腳本內容
四:將腳本放到Linux定時任務中
1.1在通過xtrabackup對MySQL數據庫進行備份的時候,不僅需要本地備份,更需要遠程備份,如果硬盤損壞的話,不至於數據全部損壞,而導致無法恢復數據。但是如果使用xtrabackup在對MySQL數據庫備份的時候通過流的方式備份並壓縮,這樣就無法進行正常的增量備份,所以在xtrabackup在備份完畢之後,將備份文件打包壓縮,再然後將此壓縮包傳輸到其它服務器中,這樣既不影響數據庫服務器的正常備份,還能把備份數據傳輸到另一臺服務器上,增加了數據的可靠性。
2.1在遠程服務器上生成公鑰和私鑰
[root@linuxsvr ~]# ssh-keygen -t rsa
2.2把公鑰傳到目標服務器(傳輸數據的目標服務器)
[root@linuxsvr .ssh]# scp id_rsa.pub root@IP:/root/.ssh/authorized_keys
2.3通過ssh的方式登錄目標服務器,看是否還需要密碼
ssh root@IP
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查看