在 Linux 上备份 GitLab 配置,通常分为官方推荐备份方式和手动备份关键文件两类。下面按实用角度说明。
GitLab 的 gitlab-rake 备份默认不包含 /etc/gitlab 和 SSH host keys,需要单独备份。
# 1. 执行 GitLab 数据备份
gitlab-rake gitlab:backup:create
备份文件位置:
/var/opt/gitlab/backups/
# GitLab 主配置
sudo tar czf /backup/gitlab-etc-$(date +%F).tar.gz /etc/gitlab
# SSH host keys(CI/CD、仓库克隆依赖)
sudo tar czf /backup/gitlab-ssh-$(date +%F).tar.gz /etc/ssh
| 路径 | 说明 |
|---|---|
/etc/gitlab/gitlab.rb |
GitLab 主配置 |
/etc/gitlab/gitlab-secrets.json |
密钥(不能丢) |
/etc/ssh/ |
SSH host key |
/var/opt/gitlab/ |
数据(官方备份已包含) |
/var/log/gitlab/ |
日志(可选) |
#!/bin/bash
BACKUP_DIR=/backup/gitlab
DATE=$(date +%F)
mkdir -p $BACKUP_DIR
# 数据备份
gitlab-rake gitlab:backup:create
# 配置备份
tar czf $BACKUP_DIR/gitlab-etc-$DATE.tar.gz /etc/gitlab
tar czf $BACKUP_DIR/ssh-host-keys-$DATE.tar.gz /etc/ssh
# 恢复配置
tar xzf gitlab-etc-YYYY-MM-DD.tar.gz -C /
# 恢复数据
gitlab-rake gitlab:backup:restore BACKUP=YYYYMMDD_HHMMSS
⚠️ 版本必须一致
✅ 定期备份
✅ 配置与数据分开存储
✅ 备份到异地 / 对象存储
✅ 测试恢复流程
如果你用的是 Omnibus / Docker / Kubernetes GitLab,可以告诉我,我可以给你对应方案。