在 Linux 上备份 GitLab 主要有两种方式:官方推荐的全量备份 和 手动备份关键数据。下面按最常用、最安全的方式给你说明,并附上恢复方法。
适用于 Omnibus 安装方式(最常见)。
sudo gitlab-backup create
旧版本可能是:
sudo gitlab-rake gitlab:backup:create
执行完成后,备份文件会生成在:
/var/opt/gitlab/backups/
文件名类似:
1700000000_2025_01_01_gitlab_backup.tar
备份命令 不会 备份以下文件,需要手动备份:
sudo cp /etc/gitlab/gitlab.rb /backup/
sudo cp /etc/gitlab/gitlab-secrets.json /backup/
✅ 必须一起备份,否则恢复后:
编辑 crontab:
sudo crontab -e
每天凌晨 2 点备份:
0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1
rsync -avz /var/opt/gitlab/backups/ user@backup-server:/data/gitlab/backups/
或使用云存储(S3 / OSS / MinIO)。
⚠️ GitLab 版本必须一致
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
sudo cp /backup/gitlab.rb /etc/gitlab/
sudo cp /backup/gitlab-secrets.json /etc/gitlab/
sudo gitlab-ctl reconfigure
sudo gitlab-backup restore BACKUP=1700000000_2025_01_01
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
docker exec -t gitlab gitlab-backup create
备份路径在容器内:
/var/opt/gitlab/backups
需要挂载出来或 docker cp 拷贝。
✅ 包含:
❌ 不包含:
sudo chown git.git /var/opt/gitlab/backups/*
通常是 版本不一致 或 secrets 没恢复。
sudo gitlab-backup create
sudo cp /etc/gitlab/gitlab.rb /backup/
sudo cp /etc/gitlab/gitlab-secrets.json /backup/
如果你愿意,我可以: