在 Ubuntu 上备份 GitLab,通常不建议手动复制文件,而是使用 GitLab 自带的备份工具。下面按“标准做法 → 常用配置 → 恢复 → 其他注意点”来说明。
sudo gitlab-rake gitlab:backup:create
备份完成后,文件会生成在:
/var/opt/gitlab/backups/
文件名类似:
1717400000_2024_06_03_16.11.3_gitlab_backup.tar
✅ 包含内容:
gitlab:backup:create 不会备份以下文件,必须手动备份:
sudo cp /etc/gitlab/gitlab.rb /backup/gitlab.rb
sudo cp /etc/gitlab/gitlab-secrets.json /backup/gitlab-secrets.json
⚠️ 如果只恢复 tar 包而不恢复这两个文件:
编辑配置文件:
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
⚠️ 恢复前注意:
sudo gitlab-ctl stop puma
sudo gitlab-ctl stop sidekiq
sudo gitlab-rake gitlab:backup:restore BACKUP=1717400000_2024_06_03_16.11.3
sudo gitlab-ctl restart
备份:
docker exec -t gitlab gitlab-rake gitlab:backup:create
配置文件在挂载目录:
/srv/gitlab/config/gitlab.rb
/srv/gitlab/config/gitlab-secrets.json
✅ 必须做:
gitlab:backup:creategitlab.rbgitlab-secrets.json✅ 建议做:
如果你愿意,可以告诉我:
我可以帮你写一套完整备份脚本。