linux

Linux系统中GitLab的备份与恢复方法

小樊
57
2025-09-29 14:16:53
栏目: 智能运维

Linux系统中GitLab备份与恢复方法

一、备份方法

1. 手动备份(全量/部分)

GitLab提供内置rake任务实现全量或部分数据备份。全量备份包含仓库、数据库、用户/组、密钥等所有数据,命令如下:

sudo gitlab-rake gitlab:backup:create

备份文件默认存储在/var/opt/gitlab/backups目录,文件名格式为<timestamp>_gitlab_backup.tar(如1711234567_gitlab_backup.tar)。
若需排除特定部分(如artifacts、builds),可使用--skip参数:

sudo gitlab-rake gitlab:backup:create SKIP=artifacts,builds

2. 定时自动备份

通过crontab设置定时任务,实现每日自动备份。例如,每天凌晨2点执行全量备份:

sudo crontab -e

添加以下内容:

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

若需自定义备份路径,可修改/etc/gitlab/gitlab.rb配置文件:

gitlab_rails['backup_path'] = '/path/to/custom/backup'

修改后执行sudo gitlab-ctl reconfigure使配置生效。

3. 备份敏感配置文件

备份gitlab.rb(GitLab主配置)和gitlab-secrets.json(加密密钥,如数据库密码、OAuth令牌)至关重要,避免恢复后无法登录或数据泄露:

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

二、恢复方法

1. 恢复前准备

2. 执行恢复操作

将备份文件复制到/var/opt/gitlab/backups目录(若路径有修改,需对应调整),然后运行恢复命令:

sudo gitlab-rake gitlab:backup:restore BACKUP=<timestamp>

其中<timestamp>为备份文件名中的时间戳(如1711234567)。恢复过程中会提示确认覆盖现有数据,输入yes继续。

3. 恢复后启动服务

恢复完成后,启动GitLab所有服务:

sudo gitlab-ctl start

或逐一启动关键服务:

sudo gitlab-ctl start unicorn
sudo gitlab-ctl start sidekiq

三、注意事项

0
看了该问题的人还看了