gitlab 本地 定時備份


===============================================

20171015_第1次修改                       ccb_warlock

===============================================

 部署:http://www.cnblogs.com/straycats/p/7637373.html

 升級:http://www.cnblogs.com/straycats/p/7707359.html

 遠程備份:http://www.cnblogs.com/straycats/p/7672692.html

 遷移/恢復:http://www.cnblogs.com/straycats/p/7702271.html

 

經過推動,研發部門終於更換了使用了3年的git,發現之前源碼管理並沒有備份機制,既然接手了it這塊我就得改變這種“裸奔”的現狀,為此查找了資料,整理這一塊本地備份的解決方案。

 


 一、環境准備

我們默認一台服務器已成功部署了gitlab。

如果還沒有成功部署,可以參考 http://www.cnblogs.com/straycats/p/7637373.html

 


 二、手動備份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

 

 

參考資料:

1.http://www.cnblogs.com/shansongxian/p/6599144.html

2.http://blog.csdn.net/ouyang_peng/article/details/77070977


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM