在 Linux 上备份 GitLab,官方推荐的方式是使用 GitLab 自带的备份工具。下面按 最常用、最安全、可恢复 的方式给你一个完整说明。
sudo gitlab-backup create
适用于 Omnibus 安装方式(最常见)
备份完成后,文件默认在:
/var/opt/gitlab/backups/
文件名类似:
1710000000_2025_03_10_gitlab_backup.tar
gitlab-backup 不会备份配置文件和密钥
必须手动备份:
sudo cp /etc/gitlab/gitlab.rb /backups/gitlab.rb
sudo cp /etc/gitlab/gitlab-secrets.json /backups/gitlab-secrets.json
✅ 恢复时必须使用相同版本的 secrets 文件
sudo gitlab-backup create CRON=1
CRON=1 可避免输出进度条,适合定时任务。
✅ 包含:
❌ 不包含:
sudo crontab -e
0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1
rsync -avz /var/opt/gitlab/backups/ user@backup-server:/data/gitlab/backups/
或使用对象存储(S3 / MinIO / OSS)。
gitlab-ctl reconfigure
sudo cp gitlab.rb /etc/gitlab/
sudo cp gitlab-secrets.json /etc/gitlab/
gitlab-ctl reconfigure
sudo gitlab-backup restore BACKUP=1710000000_2025_03_10
gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true
docker exec -t gitlab gitlab-backup create
配置文件:
/var/opt/gitlab/config/
✅ GitLab 版本必须一致
✅ 恢复前停止服务:
gitlab-ctl stop puma
gitlab-ctl stop sidekiq
✅ 备份文件权限问题:
chown git.git /var/opt/gitlab/backups/*
# 备份
sudo gitlab-backup create
sudo cp /etc/gitlab/gitlab.rb /backups/
sudo cp /etc/gitlab/gitlab-secrets.json /backups/
# 定时
crontab -e
如果你愿意,可以告诉我:
我可以帮你定制一套 生产级备份方案 ✅