===============================================html
20171015_第1次修改 ccb_warlockgit
===============================================vim
部署:http://www.cnblogs.com/straycats/p/7637373.html服務器
升級:http://www.cnblogs.com/straycats/p/7707359.html
運維
遠程備份:http://www.cnblogs.com/straycats/p/7672692.htmlgitlab
遷移/恢復:http://www.cnblogs.com/straycats/p/7702271.htmlspa
通過推進,研發部門終於更換了使用了3年的git,發現以前源碼管理並無備份機制,既然接手了it這塊我就得改變這種「裸奔」的現狀,爲此查找了資料,整理這一塊本地備份的解決方案。.net
1、環境準備設計
咱們默認一臺服務器已成功部署了gitlab。rest
若是尚未成功部署,能夠參考 http://www.cnblogs.com/straycats/p/7637373.html。
2、手動備份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。
僅僅這樣不夠,天天我這裏的運維工做也有很多,若是天天都來手動備份,雖然只要幾分鐘,可是人工成本很高,因此仍是要考慮使用自動定時的方式進行備份。
3、定時自動備份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
可是僅僅實現自動備份仍是不夠,備份若是不能及時清理硬盤的空間很快會不夠用,同時也要可以自動清理不須要人工花時間在這一塊。
4、自動清理
這一塊因爲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