1. 程式人生 > >gitlab學習(6)---gitlab遠端備份

gitlab學習(6)---gitlab遠端備份

假設:伺服器A:192.168.2.229
假設:備份伺服器B:192.168.2.230
1.伺服器B安裝git
在這裡插入圖片描述
2.在gitlab備份伺服器B上生成rsa證書
生成的過程中提示輸入金鑰對儲存位置,直接回車,接受預設值就行了

ssh-keygen -t rsa -C "[email protected]"


這樣,在/root/.ssh下生成id_rsa 和 id_rsa.pub 兩個檔案,其中公共金鑰儲存在 /root/.ssh/id_rsa.pub,私有金鑰儲存在/root/.ssh/id_rsa
3. 在gitlab伺服器B上cp生成rsa公鑰證書
在/root/.ssh下複製備份一份id_rsa.pub 命名為 id_rsa.pub.A,以便拷貝到遠端伺服器A。

cd /root/.ssh
cp id_rsa.pub id_rsa.pub.A

4.生成rsa公鑰證書上傳到伺服器A
先在伺服器A上建立目錄/root/.ssh。

mkdir -p /root/.ssh

使用scp命令進行遠端複製,將備份伺服器B生成的id_rsa.pub.A拷貝到伺服器A的/root/.ssh目錄下。在B執行,圖中IP是A的IP

scp /root/.ssh/id_rsa.pub.A [email protected]:/root/.ssh/

此時使用scp命令需要輸入密碼,當把下面的“2.3 金鑰配對”執行後,以後gitlab伺服器A使用scp命令複製檔案到備份伺服器B的話,就不需要輸入密碼了。
5 金鑰配對
1)建立authorized_keys檔案
在伺服器A的/root/.ssh下建立authorized_keys檔案。

touch /root/.ssh/authorized keys

2)將id_rsa.pub.A檔案內容追加到authorized_keys 檔案中
通過 cat 命令 把id_rsa.pub.A 追寫到 authorized_keys 檔案中。

cd /root/.ssh/
cat id_rsa.pub.A >> authorized_keys

3)修改authorized_keys檔案的許可權
authorized_keys檔案的許可權很重要,如果設定為777,那麼登入的時候,還是需要提供密碼的。

chmod 400 authorized_keys

我們發現不需要輸入密碼了:
在這裡插入圖片描述


6.定時將備份檔案傳到備份伺服器
建立遠端備份指令碼
在gitlab伺服器B上,在 /home/backups目錄下建立定期備份指令碼auto_backup_to_remote.sh。
vim /home/backups/auto_backup_to_remote.sh
在這裡插入圖片描述
修改遠端備份指令碼auto_backup_to_remote.sh的許可權
要能讓系統執行auto_backup_to_remote.sh,必須修改該指令碼的許可權。

chmod 777 auto_backup_to_remote.sh

建立日誌存放目錄

mkdir -p /home/backups/log

新增定時計劃
定時備份的思路建立在手動的基礎上,通過crontab新增定時計劃就可以解決這個問題。
一般新增定時計劃可以有2種方式:
1.使用命令crontab -e,將定時任務新增後儲存。
2.將定時任務新增到/etc/crontab檔案中。
我這裡採取第一種,使用crontab -e。

crontab -e

結合我之前對公司gitlab本地備份的設計,故分別在每天凌4點進行備份,故新增下面的內容,wq儲存。

0 4 * * * /home/backups/auto_backup_to_remote.sh -D 1

重啟crontab

systemctl restart crond