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

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

ssh-****** -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