OS:CentOS 7.2
Git:1.8.3.1
備份模式:
以下步驟以雙機備份為例,單機備份同理,只是在鏡像git項目的時候把git url換成單機中的git項目目錄即可。
首先,查看系統軟件庫中是否有git和git的版本:
CentOS 7.2環境下的輸出如下:
CentOS 7.x版本的倉庫中已經附帶了1.8.3.1版本的git,可以直接安裝。
CentOS 6.x中的git是1.7.x版本,自帶庫中git版本低的linux發行版可以添加git1.8.3.1的源來安裝git,但這個操作要求本機能訪問互聯網
其他版本的git理論上也可以,請自行測試
結果最後顯示“安裝完成”或“Complete”表示安裝成功。可以直接使用git命令測試壹下:
輸出如下表示git安裝成功並可用。
創建壹個git用戶,用來提供給外部用戶以git url的方式訪問git庫。
在用戶目錄或其他對外目錄中創建 /git/repos 目錄,用來存放git庫。
註意: 盡量使用git用戶來創建該目錄,方便以後git操作該目錄,如果是使用其他用戶創建的,記得使用以下命令將該目錄的owner改為git:
為了方便訪問,可以在根目錄下創建壹個軟鏈連接到該目錄:
這樣設置後,假如以後有壹個庫叫 test.git ,那麽就可以通過以下url來訪問git庫了:
創建壹個測試庫用來測試備份及連通性。
同主GIT服務器的《安裝git》章節。
同主GIT服務器的《創建git庫目錄》章節。
目錄結構盡量與主git服務器上的結構壹致,如果不壹致,使用軟鏈的形式將git url配置為與主git服務器壹致,這樣保證在切換服務器時,客戶端不用做修改操作。
以上個步驟中創建的 test.git 為例:
這樣,主git服務器中的 test.git 就鏡像到備份機中了。
如果主服務器的git項目發生了變更,可以將變更同步到備份機。
將以上同步命令寫成腳本,添加壹個定時任務來定時同步即可。
(待補充)
備份同步時每次都需要輸入主git服務器的密碼,比較麻煩,也不利於定時同步的腳本操作,可以使用ssh免密登錄的方式,在主服務器上配置備份服務器的公鑰。
壹路Enter(回車鍵),完成後會打印出密鑰的生成位置,通常在用戶主目錄的 .ssh 目錄中。默認情況下會生成以下兩個文件:
壹定要註意上述命令中的第三步,權限要設置對,否則認證不過去不能免密登錄。
如果在實際運行中,主git服務器掛了壹段時間,在這段時間裏壹直是備份git服務器在工作,那麽在修復好主服務器後需要將這壹段時間的變更同步回主服務器。
操作完成後備份庫自上壹次同步後的更改都推送到了主庫。