在 Linux 上备份 GitLab 主要有 官方推荐方式 和 手动方式。下面按 最常用、最安全 的方式给你说明,适用于 Omnibus GitLab(最常见安装方式)。
gitlab-backup 命令(最重要)sudo gitlab-backup create
旧版本命令可能是:
sudo gitlab-rake gitlab:backup:create
执行完成后,备份文件会生成在:
/var/opt/gitlab/backups/
文件名类似:
1700000000_2025_01_01_gitlab_backup.tar
✅ 包含:
❌ 不包含:
/etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json⚠️ 这两个文件必须单独备份!
sudo cp /etc/gitlab/gitlab.rb /backup/
sudo cp /etc/gitlab/gitlab-secrets.json /backup/
或者打包:
sudo tar -czf gitlab-config-$(date +%F).tar.gz /etc/gitlab
❗ 不备份
gitlab-secrets.json会导致:
# 1. 停止部分服务(可选,更安全)
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
# 2. 创建备份
sudo gitlab-backup create
# 3. 启动服务
sudo gitlab-ctl start
sudo crontab -e
0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1
CRON=1会抑制交互提示
rsync -avz /var/opt/gitlab/backups/ user@remote:/data/gitlab-backup/
rsync -avz /etc/gitlab/ user@remote:/data/gitlab-backup/config/
# 查看版本
gitlab-rake gitlab:env:info
sudo gitlab-backup restore BACKUP=1700000000_2025_01_01
sudo cp gitlab.rb /etc/gitlab/
sudo cp gitlab-secrets.json /etc/gitlab/
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
docker exec -t gitlab gitlab-backup create
备份路径在容器内:
/var/opt/gitlab/backups
| 项目 | 建议 |
|---|---|
| 备份频率 | 每天 |
| 保留时间 | 7~30 天 |
| 是否远程 | ✅ 必须 |
| 是否测试恢复 | ✅ 建议 |
gitlab-secrets.json 不匹配如果你愿意,可以告诉我:
我可以帮你 定制一套完整备份方案 ✅