下面按常见场景给你讲一下 Linux 上 GitLab 的备份与恢复,以 官方 Omnibus GitLab 为例(最常用)。如果你用的是 Docker 或源码安装,可以告诉我,我再补充。
在 GitLab 服务器上执行:
sudo gitlab-backup create
老版本命令可能是:
sudo gitlab-rake gitlab:backup:create
备份文件默认在:
/var/opt/gitlab/backups/
文件名类似:
1690000000_2023_07_22_16.0.0_gitlab_backup.tar
✅ 包含:
❌ 不包含:
sudo cp /etc/gitlab/gitlab.rb /backup/gitlab.rb.bak
sudo cp -R /etc/gitlab/ssl /backup/ssl.bak
编辑:
sudo crontab -e
示例(每天 2 点):
0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1
⚠️ 恢复前注意
sudo gitlab-ctl stop unicorn
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
(老版本可能是 unicorn)
sudo gitlab-backup restore BACKUP=1690000000_2023_07_22_16.0.0
只写时间戳部分,不要写
_gitlab_backup.tar
sudo cp /backup/gitlab.rb.bak /etc/gitlab/gitlab.rb
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
sudo gitlab-ctl status
sudo gitlab-rake gitlab:check SANITIZE=true
docker exec -it gitlab gitlab-backup create
恢复类似,但需挂载同一 volumes。
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
不能恢复,必须重装同版本 GitLab。
如果你愿意,可以告诉我:
我可以直接给你可执行的完整命令脚本。