温馨提示×

如何在debian备份gitlab数据

小樊
47
2026-09-11 10:06:50
栏目: 智能运维

在 Debian 上备份 GitLab 数据,最推荐、也是官方支持的方式是使用 GitLab 自带的备份命令。下面按「标准备份 → 定时备份 → 恢复说明 → 注意事项」来说明。


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

1. 执行备份

sudo gitlab-rake gitlab:backup:create

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

/var/opt/gitlab/backups/

文件名类似:

1690000000_2023_07_22_gitlab_backup.tar

✅ 该备份包含:

  • 代码仓库
  • 数据库(PostgreSQL)
  • 上传文件
  • CI/CD 数据等

2. 备份配置文件(非常重要)

gitlab:backup:create 不会备份配置文件,需手动备份:

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

二、设置定时自动备份(cron)

1. 编辑 root 的定时任务

sudo crontab -e

2. 示例:每天凌晨 2 点备份

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

CRON=1 用于抑制不必要输出


三、只备份部分数据(可选)

仅备份数据库

sudo gitlab-rake gitlab:backup:create SKIP=repositories,uploads

跳过某些内容

sudo gitlab-rake gitlab:backup:create SKIP=artifacts,lfs,registry

四、恢复 GitLab 数据(备用)

⚠️ 恢复前请确保:

  • GitLab 版本一致
  • 配置文件已恢复

1. 停止相关服务

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

2. 恢复备份

sudo gitlab-rake gitlab:backup:restore BACKUP=1690000000_2023_07_22

3. 重启 GitLab

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

五、重要注意事项

  1. 必须同时备份:
    • /var/opt/gitlab/backups/
    • /etc/gitlab/
  2. 不同 GitLab 版本 不能跨大版本恢复
  3. 如果是 Docker 部署,命令需在容器内执行
  4. 可将备份同步到远程存储(rsync / s3 / NFS)

如果你愿意,我可以:

  • 帮你写 rsync 远程备份脚本
  • 配置 GitLab + S3 备份
  • 针对 Docker / Omnibus / 源码安装 给具体方案

0