Linux服務器上的自動備份(二)

上一節說的是單臺服務器上的mysql備份,這節主要是通過一臺備份服務器對遠程的多臺linux服務器上的數據進行備份。遠程備份的困難就是ssh、scp登錄密碼自動輸入。解決了這個,其它無非就是通過定時任務在目標server上用mysqlduml導出db,或者tar打包數據源文件,然後遠程scp到某一臺server上進行保存。

 

下面就簡潔地說明一下遠程備份的配置步驟,backupserver爲備份服務器,所有備份的資料都要傳輸到這臺server上,mysqlserver爲DB Server,需要把其中的DB導出sql,然後scp到backupserver上。步驟如下:

 

第一步:以root登錄mysqlserver,生成ssh的公私鑰

 

 root@mysqlserver:~#  ssh-keygen -t dsa (使用DSA數字簽名算法)

 

在/root目錄下有一個隱藏目錄.ssh,可以通過ls -la查看,生成的公私鑰就保存在此目錄中,你會發現.ssh/id_dsa、.ssh/id_dsa.pub,

這兩個就是通過ssh-keygen生成出來的,生成過程會要求你輸入密碼短語

 

第二步:把mysqlserver上的公鑰scp到backupserver上,並添加到其上ssh中的authorized_keys認證文件中

 

 root@mysqlserver:~# scp .ssh/id_dsa.pub [email protected]:/root/.ssh/

 root@mysqlserver:~# ssh [email protected] (輸入密碼登錄backupserver)

 root@backupserver:~# cat .ssh/id_dsa.pub >> .ssh/authorized_keys

 

 

第三步:設置backupserver上的.ssh/authorized_keys文件的操作權限,並刪除公鑰文件

 

 root@backupserver:~# rm -rf  .ssh/id_dsa.pub (刪除此公鑰文件)

 root@backupserver:~# chmod 600 .ssh/authorized_keys (通過ssh的公/私鑰機制登錄,會要訪問此文件中的認證信息)

 

第四步:安裝並初始化keychain

 

root@mysqlserver:~# tar -ivh xxx.rpm(下載rpm安裝)

root@mysqlserver:~# sudo apt-get install keychain (ubuntu下安裝)

 

root@mysqlserver:~# keychain ~/.ssh/id_dsa

 

初始化後會在/root下生成一個隱藏的.keychain目錄,其中存儲着xxx-sh文件(xxx爲主機名),文件中記錄着SSH_AUTH_SOCK、SSH_AGENT_PID兩個全局變量。

keychain的作用就是在全局內存中緩存ssh遠程連接的公鑰憑證,第一次啓動時會要求輸入密碼短語 ,就是第一步驟生成ssh公鑰時要求輸入的密碼短語。此後如果重複連接之前已經連接過的server,會查詢緩存後知道此server爲信任主機,就不需要輸入密碼了,從而實現我們的遠程定時備份功能。

但是讓用戶退出或者server重啓後,keychain一樣啓作用,要修改/root/.bash_profile文件,

 

第五步:修改/root/.bash_profile

 

編輯/root/.bash_profile文件,向其中添加如下內容,確保在所有文本之前輸入:

keychain ~/.ssh/id_dsa
source ~/.keychain/$HOSTNAME-sh

 

這樣修改後,每當重啓機器後系統會啓動keychain,並要求輸入密碼短語, 加載成功後,並可以在不重啓的情況下多次應用scp功能,而不需輸入密碼。

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章