轉載:gitlab本地備份
一、環境準備
我們預設一臺伺服器已成功部署了gitlab。
二、手動備份gitlab
很方便,因為gitlab有指令直接支援手動備份。
gitlab-rake gitlab:backup:create
這裡要特別說明,如果 /etc/gitlab/gitlab.rb 配置了引數“backup_path”(例如gitlab_rails['backup_path'] = '/backup'),則備份的目錄就是該目錄下(/backup/);
如果沒有配置引數“backup_path”,則gitlab把備份檔案生成到預設目錄/var/opt/gitlab/backups。
僅僅這樣不夠,每天我這裡的運維工作也有不少,如果每天都來手動備份,雖然只要幾分鐘,但是人工成本很高,所以還是要考慮使用自動定時的方式進行備份。
三、定時自動備份gitlab(本地)
定時備份的思路建立在手動的基礎上,通過crontab新增定時計劃就可以解決這個問題。
一般新增定時計劃可以有2種方式:
1.使用命令crontab -e,將定時任務新增後儲存。
2.將定時任務新增到/etc/crontab檔案中。
我這裡採取第一種,使用crontab -e。
crontab -e
根據我們部門的工作時間,我設計一天備份2次,分別在每天12:00、19:00,故我新增下面的內容,並儲存。
0 12 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create 0 19 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
重啟crontab
systemctl restart crond
但是僅僅實現自動備份還是不夠,備份如果不能及時清理硬碟的空間很快會不夠用,同時也要能夠自動清理不需要人工花時間在這一塊。
四、自動清理
這一塊由於gitlab已經支援,我就走簡單的方案,配置gitlab來實現自動清理功能。
vim /etc/gitlab/gitlab.rb
將其中backup_keep_time的配置取消註釋,根據需要設定自動清理多少天前的備份,我這裡是設定備份保留7天(7*3600*24=604800),儲存。
gitlab_rails['backup_keep_time'] = 604800
重新載入gitlab的配置檔案
gitlab-ctl reconfigure