gitlab 备份
在配置文件有有默认的 备份路劲
sudo vim /etc/gitlab/gitlab.rb
默认在这个 路径下面
/var/opt/gitlab/backups
然后默认的备份时间是 7天 ,604800秒。 保留7天的数据。
然后这边我们自定义,备份的时间和路径。 这边我们修改下 ,一般时间(7天)不动。
目录 不需要我们手动创建, gitlab-ctl reconfigure 的时候,会自动创建目录。
修改完成后, 重新加载配置,重启gitlab
gitlab-ctl reconfiguregitlab-ctl restart
我们检查新生成的目录, 在root里面。
有的实际场景需要。 可以给他重新授权。 非必要操作。
chown -r git.git /home/data/gitlab/backups/
然后我们可以手动执行一次,
/usr/bin/gitlab-rake gitlab:backup:create #备份指令
执行完成
然后查看备份目录,多了.tar的备份的文件。 文件前面部分其实是unix的时间戳。
然后我们把它写在crontab 里面。 就能自动执行了。
数据的恢复操作
当我们在生产环境中进行了误操作,可以使用备份的数据进行恢复。
我们这边首先将 gitlab上的 项目删除。
将下面app1 进行删除
在admin-area,进入项目。
直接点delete,就行了 。
删除之后,项目就没了。
现在我们按流程进行数据恢复。 先关闭以下服务
gitlab-ctl stop unicorn gitlab-ctl stop sidekiq
使用执行进行恢复
/usr/bin/gitlab-rake gitlab:backup:restore BACKUP=1572598604_2019_11_01_11.0.3 #这边的数字,就是备份文件的时间戳,需要注意。
遇到continue,直接yes 就行了。
备份完成后,restart gitlab
gitlab-ctl restart
再次登录 gitlab,项目 就出来了。
进入项目后查看下, 之前的代码 应该都在。
还有一种方法。 不推荐,只是参考下
他所有的代码其实在 gitlab 自己的 repositories 下面
ll /var/opt/gitlab/git-data/repositories/proj1/
只备份代码的话。备份这个 .git的文件也可以。。
但是 所有的用户关系并不在里面。只是纯代码。 所有 不推荐这种方法。 可能尴尬的时候能用下。 上面那种用工具备份恢复 是最好的 。