Gitlab备份与恢复:
修改gitlab配置文件:
1 2 3 4 5 6 7 8 9 |
vim /etc/gitlab/gitlab.rb ······ #指定备份后数据存放的路径、权限、时间配置 gitlab_rails['manage_backup_path'] = true #435行 开启备份功能 gitlab_rails['backup_path'] = "/opt/gitlab_backup" #436行 指定备份的路径 gitlab_rails['backup_archive_permissions'] = 0644 #439行 备份文件的权限 gitlab_rails['backup_keep_time'] = 7776000 #444行 备份保留时间(保留90天) |
创建备份目录并授权:
1 2 |
mkdir /opt/gitlab_backup && chown -R git.git /opt/gitlab_backup/ |
重新生效gitlab配置:
1 2 |
gitlab-ctl reconfigure |
手动备份:
1 2 |
gitlab-rake gitlab:backup:create |
查看备份:
1 2 |
ll /opt/gitlab_backup/ |
编写备份脚本:
1 2 3 4 5 6 7 8 9 |
vim /opt/gitlab_backup/git_back.sh #!/usr/bin/bash /usr/bin/gitlab-rake gitlab:backup:create CRON=1 #注意:环境变量CRON=1的作用是如果没有任何错误发生时, 抑制备份脚本的所有进度输出 #增加执行权限 chmod +x /opt/gitlab_backup/git_back.sh |
加入定时任务:
1 2 3 4 5 |
crontab -e #备份脚本,每天0点、6点、12点、18点各备份一次 0 0,6,12,18 * * * /bin/bash /opt/gitlab_backup/git_back.sh > /dev/null 2>&1 |
删除测试项目:
GItlab只能还原到与备份文件相同的gitlab版本。
在上面gitlab备份之前创建了opstands项目,然后不小心误删了opstands项目,现在就进行gitlab恢复操作
关闭数据库连接服务:
1 2 3 4 |
gitlab-ctl stop unicorn && gitlab-ctl stop sidekiq #查看 gitlab-ctl status |
现在通过之前的备份文件进行恢复(必须要备份文件放到备份路径下,这里备份路径我自定义的/opt/gitlab_backup,默认的是/var/opt/gitlab/backups)
恢复数据:
Gitlab的恢复操作会先将当前所有的数据清空,然后再根据备份数据进行恢复.
1 2 3 |
cd /opt/gitlab_backup gitlab-rake gitlab:backup:restore BACKUP=1609167110_2020_12_28_13.0.3 |