温馨提示×

GitLab在Linux如何备份

小樊
41
2026-07-28 14:12:40
栏目: 智能运维

在 Linux 上备份 GitLab 主要有两种方式:官方推荐的全量备份手动备份关键数据。下面按最常用、最安全的方式给你说明,并附上恢复方法。


一、使用 GitLab 官方备份命令(推荐 ✅)

适用于 Omnibus 安装方式(最常见)。

1️⃣ 执行备份命令

sudo gitlab-backup create

旧版本可能是:

sudo gitlab-rake gitlab:backup:create

执行完成后,备份文件会生成在:

/var/opt/gitlab/backups/

文件名类似:

1700000000_2025_01_01_gitlab_backup.tar

2️⃣ 备份配置文件(非常重要 ⚠️)

备份命令 不会 备份以下文件,需要手动备份:

sudo cp /etc/gitlab/gitlab.rb /backup/
sudo cp /etc/gitlab/gitlab-secrets.json /backup/

必须一起备份,否则恢复后:

  • CI/CD 变量
  • Runner Token
  • 加密数据 都会失效。

3️⃣ 设置自动备份(可选)

编辑 crontab:

sudo crontab -e

每天凌晨 2 点备份:

0 2 * * * /opt/gitlab/bin/gitlab-backup create CRON=1

二、备份到远程服务器(推荐生产环境)

示例:rsync 同步到远程

rsync -avz /var/opt/gitlab/backups/ user@backup-server:/data/gitlab/backups/

或使用云存储(S3 / OSS / MinIO)。


三、GitLab 恢复步骤(灾难恢复)

⚠️ GitLab 版本必须一致

1️⃣ 停止相关服务

sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq

2️⃣ 恢复配置文件

sudo cp /backup/gitlab.rb /etc/gitlab/
sudo cp /backup/gitlab-secrets.json /etc/gitlab/
sudo gitlab-ctl reconfigure

3️⃣ 恢复数据

sudo gitlab-backup restore BACKUP=1700000000_2025_01_01

4️⃣ 重启 GitLab

sudo gitlab-ctl restart

5️⃣ 检查状态

sudo gitlab-rake gitlab:check SANITIZE=true

四、Docker 安装的 GitLab 备份

docker exec -t gitlab gitlab-backup create

备份路径在容器内:

/var/opt/gitlab/backups

需要挂载出来或 docker cp 拷贝。


五、备份包含哪些内容?

✅ 包含:

  • 仓库代码
  • 数据库(PostgreSQL)
  • 附件
  • LFS
  • CI 产物
  • Wiki

❌ 不包含:

  • 配置文件
  • SSL 证书
  • secrets

六、常见错误

❌ 备份文件权限错误

sudo chown git.git /var/opt/gitlab/backups/*

❌ 恢复后 500 错误

通常是 版本不一致secrets 没恢复


七、总结(最简备份方案 ✅)

sudo gitlab-backup create
sudo cp /etc/gitlab/gitlab.rb /backup/
sudo cp /etc/gitlab/gitlab-secrets.json /backup/

如果你愿意,我可以:

  • ✅ 给你一份 生产环境备份脚本
  • ✅ 帮你设计 GitLab 高可用备份方案
  • ✅ 针对 Docker / Kubernetes / RPM 安装 单独说明

0