在 Debian 上备份 GitLab 数据,最推荐、也是官方支持的方式是使用 GitLab 自带的备份命令。下面按「标准备份 → 定时备份 → 恢复说明 → 注意事项」来说明。
sudo gitlab-rake gitlab:backup:create
备份完成后,文件会生成在:
/var/opt/gitlab/backups/
文件名类似:
1690000000_2023_07_22_gitlab_backup.tar
✅ 该备份包含:
- 代码仓库
- 数据库(PostgreSQL)
- 上传文件
- CI/CD 数据等
gitlab:backup:create 不会备份配置文件,需手动备份:
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 czf gitlab-config-$(date +%F).tar.gz \
/etc/gitlab/gitlab.rb \
/etc/gitlab/gitlab-secrets.json
sudo crontab -e
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1
CRON=1用于抑制不必要输出
sudo gitlab-rake gitlab:backup:create SKIP=repositories,uploads
sudo gitlab-rake gitlab:backup:create SKIP=artifacts,lfs,registry
⚠️ 恢复前请确保:
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=1690000000_2023_07_22
sudo gitlab-ctl restart
sudo gitlab-rake gitlab:check SANITIZE=true
/var/opt/gitlab/backups//etc/gitlab/如果你愿意,我可以: