温馨提示×

linux gitlab如何备份

小樊
48
2026-07-01 06:08:40
栏目: 智能运维

Linux 上备份 GitLab,官方推荐的方式是使用 GitLab 自带的备份工具。下面按 最常用、最安全、可恢复 的方式给你一个完整说明。


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

1️⃣ 执行备份命令

sudo gitlab-backup create

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

备份完成后,文件默认在:

/var/opt/gitlab/backups/

文件名类似:

1710000000_2025_03_10_gitlab_backup.tar

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

gitlab-backup 不会备份配置文件和密钥

必须手动备份:

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

恢复时必须使用相同版本的 secrets 文件


3️⃣ 推荐:一条完整备份命令

sudo gitlab-backup create CRON=1

CRON=1 可避免输出进度条,适合定时任务。


二、备份内容包含什么?

✅ 包含:

  • 代码仓库
  • 数据库(PostgreSQL)
  • 附件
  • CI/CD 数据
  • LFS
  • Registry(如启用)

❌ 不包含:

  • 配置文件
  • SSL 证书
  • secrets 文件

三、定时自动备份(生产环境必备)

1️⃣ 编辑定时任务

sudo crontab -e

2️⃣ 示例:每天凌晨 2 点备份

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 备份(测试前不要在生产直接操作)

1️⃣ 安装 相同版本 GitLab

gitlab-ctl reconfigure

2️⃣ 恢复配置文件

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

3️⃣ 恢复数据

sudo gitlab-backup restore BACKUP=1710000000_2025_03_10

4️⃣ 重启并检查

gitlab-ctl restart
gitlab-rake gitlab:check SANITIZE=true

六、Docker 安装的 GitLab 备份

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

如果你愿意,可以告诉我:

  • GitLab 安装方式(Omnibus / Docker / 源码)
  • 数据量大小
  • 是否需要 增量备份 / 异地 / 云存储

我可以帮你定制一套 生产级备份方案

0