温馨提示×

Linux GitLab如何配置备份

小樊
44
2026-07-28 14:46:54
栏目: 智能运维

Linux 上配置 GitLab 备份,官方推荐的方式是使用 GitLab 自带的备份工具。下面按 最常见、最稳妥 的方式一步步说明(适用于 Omnibus 版 GitLab,最常见)。


一、GitLab 官方备份方式(推荐)

1️⃣ 手动执行一次备份(先验证)

sudo gitlab-backup create

旧版本命令可能是:

sudo gitlab-rake gitlab:backup:create

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

/var/opt/gitlab/backups/

文件名类似:

1740000000_2025_03_20_gitlab_backup.tar

二、配置自动定时备份(crontab)

1️⃣ 编辑 root 用户的定时任务

sudo crontab -e

2️⃣ 添加定时任务(示例:每天凌晨 2 点)

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

CRON=1 的作用:

  • 抑制不必要的输出
  • 防止 cron 发送大量邮件

三、备份内容包含哪些?

默认备份包括:

✅ Git 仓库
✅ 数据库(PostgreSQL)
✅ 附件(uploads)
✅ CI/CD 产物
✅ LFS 文件

不包含以下内容(需单独备份)

内容 路径
GitLab 配置文件 /etc/gitlab/gitlab.rb
SSH host keys /etc/ssh/
TLS 证书 /etc/gitlab/ssl/
Secret 数据 /etc/gitlab/gitlab-secrets.json

✅ 推荐额外备份命令

sudo tar czf /var/opt/gitlab/backups/gitlab-config-$(date +%F).tar.gz \
  /etc/gitlab/gitlab.rb \
  /etc/gitlab/gitlab-secrets.json \
  /etc/gitlab/ssl

四、修改备份目录(可选)

编辑配置文件:

sudo vim /etc/gitlab/gitlab.rb

修改或添加:

gitlab_rails['backup_path'] = "/data/gitlab/backups"

然后执行:

sudo gitlab-ctl reconfigure

五、设置备份保留时间(防止磁盘爆满)

gitlab_rails['backup_keep_time'] = 604800  # 7 天(秒)

然后:

sudo gitlab-ctl reconfigure

六、备份恢复(重要)

⚠️ 恢复会覆盖现有数据

sudo gitlab-backup restore BACKUP=1740000000_2025_03_20

然后恢复配置:

sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart

七、生产环境最佳实践 ✅

✅ 每天自动备份
✅ 备份文件同步到远程存储(NFS / S3 / rsync)
✅ 定期测试恢复流程
✅ 备份 /etc/gitlab
✅ 监控磁盘空间


八、常见错误排查

❌ 备份失败:磁盘空间不足

df -h

❌ 权限问题

sudo chown -R git.git /var/opt/gitlab/backups

❌ 版本不一致(恢复时)

GitLab 版本必须一致或兼容


九、如果你用的是 Docker / Kubernetes

可以告诉我:

  • ✅ Omnibus
  • ✅ Docker
  • ✅ K8s Helm

我可以给你 对应环境的备份方案

需要我帮你写 完整备份 + 自动上传到远程服务器脚本 吗?

0