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