温馨提示×

怎样备份CentOS GitLab

小樊
51
2026-07-20 04:30:58
栏目: 智能运维

备份 CentOS 上的 GitLab 通常有两种主要方式:官方推荐备份命令手动备份关键数据。下面给你一套完整、可操作的备份方案,适用于 GitLab CE / EE(Omnibus 安装)


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

1️⃣ 确认 GitLab 安装方式

如果是 Omnibus 安装(最常见):

gitlab-ctl status

能正常显示服务,说明是 Omnibus。


2️⃣ 执行备份命令

sudo gitlab-backup create

GitLab 12.10 之后命令改为 gitlab-backup
老版本可能是:

sudo gitlab-rake gitlab:backup:create

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

/var/opt/gitlab/backups/

文件名类似:

1681234567_2023_04_12_gitlab_backup.tar

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

备份命令 不会 备份配置文件,需要手动备份:

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 czvf gitlab-config-$(date +%F).tar.gz \
  /etc/gitlab/gitlab.rb \
  /etc/gitlab/gitlab-secrets.json

二、定时自动备份(生产环境建议)

1️⃣ 编辑定时任务

sudo crontab -e

2️⃣ 每天凌晨 2 点备份

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

CRON=1 会抑制不必要的输出


三、备份到远程服务器(防止本机故障)

示例:使用 rsync 同步到远程

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

或使用 scp:

scp /var/opt/gitlab/backups/*.tar user@backup-server:/data/gitlab/backups/

四、恢复 GitLab 备份(测试前务必先备份!)

1️⃣ 安装 相同版本 GitLab

yum install gitlab-ce-<version>

2️⃣ 恢复配置文件

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

3️⃣ 恢复数据

sudo gitlab-backup restore BACKUP=1681234567_2023_04_12

4️⃣ 重启服务

sudo gitlab-ctl restart

五、手动备份方式(不推荐,除非特殊需求)

适用于 Docker / 源码安装 / 特殊定制环境

需要备份:

/var/opt/gitlab/git-data/repositories
/var/opt/gitlab/postgresql
/etc/gitlab

⚠️ 风险高,恢复复杂,不建议新手使用。


六、备份内容说明

内容 是否包含
代码仓库
数据库
用户
配置 ❌(需单独备份)
SSH key
CI/CD 数据

七、常见问题

❓ 备份失败?

df -h

检查磁盘空间是否充足。

❓ 恢复后 502?

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

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

  • GitLab 版本(gitlab-rake gitlab:env:info
  • 是否 Docker 安装
  • 是否需要 增量备份 / 异地备份

我可以帮你定制一套 企业级备份方案

0