备份 CentOS 上的 GitLab 通常有两种主要方式:官方推荐备份命令 和 手动备份关键数据。下面给你一套完整、可操作的备份方案,适用于 GitLab CE / EE(Omnibus 安装)。
如果是 Omnibus 安装(最常见):
gitlab-ctl status
能正常显示服务,说明是 Omnibus。
sudo gitlab-backup create
GitLab 12.10 之后命令改为
gitlab-backup
老版本可能是:
sudo gitlab-rake gitlab:backup:create
✅ 备份完成后,文件默认在:
/var/opt/gitlab/backups/
文件名类似:
1681234567_2023_04_12_gitlab_backup.tar
备份命令 不会 备份配置文件,需要手动备份:
sudo cp /etc/gitlab/gitlab.rb /etc/gitlab/gitlab.rb.bak
sudo cp /etc/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json.bak
建议一起打包:
sudo tar czvf gitlab-config-$(date +%F).tar.gz \
/etc/gitlab/gitlab.rb \
/etc/gitlab/gitlab-secrets.json
sudo crontab -e
0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1
CRON=1会抑制不必要的输出
rsync -avz /var/opt/gitlab/backups/ user@backup-server:/data/gitlab/backups/
或使用 scp:
scp /var/opt/gitlab/backups/*.tar user@backup-server:/data/gitlab/backups/
yum install gitlab-ce-<version>
sudo cp gitlab.rb.bak /etc/gitlab/gitlab.rb
sudo cp gitlab-secrets.json.bak /etc/gitlab/gitlab-secrets.json
sudo gitlab-ctl reconfigure
sudo gitlab-backup restore BACKUP=1681234567_2023_04_12
sudo gitlab-ctl restart
适用于 Docker / 源码安装 / 特殊定制环境:
需要备份:
/var/opt/gitlab/git-data/repositories
/var/opt/gitlab/postgresql
/etc/gitlab
⚠️ 风险高,恢复复杂,不建议新手使用。
| 内容 | 是否包含 |
|---|---|
| 代码仓库 | ✅ |
| 数据库 | ✅ |
| 用户 | ✅ |
| 配置 | ❌(需单独备份) |
| SSH key | ✅ |
| CI/CD 数据 | ✅ |
df -h
检查磁盘空间是否充足。
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
如果你愿意,可以告诉我:
gitlab-rake gitlab:env:info)我可以帮你定制一套 企业级备份方案 ✅