===============================================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