温馨提示×

ubuntu gitlab恢复技巧

小樊
54
2025-06-25 18:58:10
栏目: 智能运维

在Ubuntu上恢复GitLab数据通常涉及以下步骤:

备份方法

  • 创建备份目录

    sudo mkdir -p /var/opt/gitlab/backups
    sudo chown -R git:git /var/opt/gitlab
    
  • 修改GitLab配置: 编辑 /etc/gitlab/gitlab.rb 文件,设置备份路径和备份保留时间。

    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
    sudo gitlab-ctl restart
    
  • 定时任务备份: 使用 crontab 设置定时任务,例如每天凌晨2点执行备份。

    sudo crontab -e
    # 添加以下行
    0 2 * * * /usr/bin/gitlab-rake gitlab:backup:create
    
  • 手动执行脚本进行备份

    sudo gitlab-rake gitlab:backup:create
    
  • 使用rsync进行增量备份(可选): 结合 rsync 进行增量备份,以节省空间和备份时间。

    sudo rsync -avz --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lostfound"} /var/opt/gitlab/ /path/to/backup/directory/
    

恢复方法

  • 停止相关服务: 为保证一致性,先停止服务:

    sudo gitlab-ctl stop unicorn
    sudo gitlab-ctl stop sidekiq
    

    (其他服务无需停止。)

  • 选择并恢复备份文件: 将备份文件放到 /var/opt/gitlab/backups 目录中,并赋予权限。

    sudo cp /path/to/backup/file.tar /var/opt/gitlab/backups/
    sudo chmod 777 /var/opt/gitlab/backups/file.tar
    

    运行恢复命令:

    sudo gitlab-rake gitlab:backup:restore BACKUP=1679122231_2024_06_41_13.9.7_gitlab_backup.tar
    

    备份文件前缀为文件名的时间戳部分,例如 1679122231

  • 恢复配置文件和SSL

    sudo cp /your/backup/path/gitlab.rb /etc/gitlab/gitlab.rb
    sudo cp -r /your/backup/path/ssl /etc/gitlab/
    
  • 启动服务: 恢复完成后,启动服务:

    sudo gitlab-ctl reconfigure
    sudo gitlab-ctl start
    
  • 验证恢复: 登录到GitLab界面,检查是否成功恢复了所有数据,确保GitLab实例正常运行并可访问。

请注意,数据恢复存在风险,操作前请立即停止写入新数据,并确保您有最新的备份文件。如果您在恢复过程中遇到任何问题,建议联系GitLab官方支持或专业人士以获得帮助。

0