温馨提示×

怎样备份ubuntu gitlab

小樊
40
2026-10-07 17:59:16
栏目: 智能运维

在 Ubuntu 上备份 GitLab,通常不建议手动复制文件,而是使用 GitLab 自带的备份工具。下面按“标准做法 → 常用配置 → 恢复 → 其他注意点”来说明。


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

1. 执行备份

sudo gitlab-rake gitlab:backup:create

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

/var/opt/gitlab/backups/

文件名类似:

1717400000_2024_06_03_16.11.3_gitlab_backup.tar

✅ 包含内容:

  • 代码仓库
  • 数据库(PostgreSQL)
  • 用户、组、配置(部分)
  • CI/CD 数据
  • 上传文件

二、备份 GitLab 配置文件(非常重要)

gitlab:backup:create 不会备份以下文件,必须手动备份:

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

⚠️ 如果只恢复 tar 包而不恢复这两个文件:

  • CI/CD 变量无法解密
  • Runner 注册失效
  • SSO / LDAP 异常

三、设置自动备份(可选)

编辑配置文件:

sudo vim /etc/gitlab/gitlab.rb

示例:

gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
gitlab_rails['backup_keep_time'] = 604800  # 保留 7 天

然后:

sudo gitlab-ctl reconfigure

加入 crontab:

sudo crontab -e

例如每天凌晨 2 点:

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

四、恢复 GitLab 备份

⚠️ 恢复前注意:

  • GitLab 版本必须一致
  • 配置文件要先恢复

1. 停止相关服务

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

2. 恢复备份

sudo gitlab-rake gitlab:backup:restore BACKUP=1717400000_2024_06_03_16.11.3

3. 重启 GitLab

sudo gitlab-ctl restart

五、如果是 Docker 安装的 GitLab

备份:

docker exec -t gitlab gitlab-rake gitlab:backup:create

配置文件在挂载目录:

/srv/gitlab/config/gitlab.rb
/srv/gitlab/config/gitlab-secrets.json

六、总结(最简备份清单)

✅ 必须做:

  • gitlab:backup:create
  • 备份 gitlab.rb
  • 备份 gitlab-secrets.json

✅ 建议做:

  • 定期备份
  • 异地存储(NAS / 云)
  • 定期演练恢复

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

  • GitLab 安装方式(Omnibus / Docker / 源码)
  • 是否使用外部数据库
  • 是否需要「增量备份」或「灾备方案」

我可以帮你写一套完整备份脚本。

0 踩