Gitlab 备份和恢复

这篇具有很好参考价值的文章主要介绍了Gitlab 备份和恢复。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

gitlab可以算作公司最重要的知识资产之一,虽然由于其设计,每个开发本地可能都存在着负责项目的全部提交记录,但一旦gitlab发生故障,轻则浪费大量时间进行项目重建,重则丢失项目代码数据。未雨绸缪,提前进行gitlab备份和数据恢复演练,本文记录gitlab的定时备份方案和数据恢复操作。

备份脚本

使用crontab设置定时任务,每天凌晨2点执行备份脚本

crontab -l
0 2 * * * /opt/gitlab_backup.sh

脚本内容如下所示,其中:

  1. /var/opt/gitlab/backups/ 为gitlab 备份文件地址
  2. gitlab-rake gitlab:backup:create 为备份命令
  3. /mnt/remote/git/ 为挂载的网盘,或者nas,或者使用scp命令传输到远程服务器
#!/bin/sh
scp_linux_path='/var/opt/gitlab/backups/'
cp_local_uri='/mnt/remote/git/'
scp_log_path='/opt/gitlab_backup.log'

time=$(date +%Y-%m-%d\ %H:%M:%S)
gitlab-rake gitlab:backup:create
filename=`ls $scp_linux_path -t |head -n1|awk '{print $0}'`
echo [$time] $scp_linux_path$filename >> $scp_log_path
cp $scp_linux_path$filename $cp_local_uri

# 清理历史旧备份文件
delfile=`ls -l -crt  $scp_linux_path/*.tar | awk '{print $9 }' | head -1`
count=`ls -l -crt  $scp_linux_path/*.tar | awk '{print $9 }' | wc -l`
echo "total count $count" >> /opt/gitlab_backup.log
if [ $count -gt 6 ]
then
    rm $delfile
    echo "delete $delfile" >> /opt/gitlab_backup.log
fi

此外,还需要手动备份/etc/gitlab/gitlab.rb/etc/gitlab/gitlab-secrets.json 文件, 在恢复数据时需要使用。

恢复步骤

原gitlab未使用docker,安装部署太繁琐,新的备份gitlab使用docker进行部署,步骤记录如下。文章来源地址https://www.toymoban.com/news/detail-730922.html

  1. gitlab-rake gitlab:env:info 查看gitlab版本号(或者直接在gitlab页面查看)
  2. 在docker hub找到对应的镜像版本
  3. docker pull gitlab/gitlab-ce:13.0.3-ce.0 根据被备份的gitlab版本下载镜像
  4. 启动容器
    docker run \
    -itd \
    -p 10000:80 \
    -p 2222:22 \
    -v /root/soft/gitlab/etc:/etc/gitlab \
    -v /root/soft/gitlab/log:/var/log/gitlab \
    -v /root/soft/gitlab/opt:/var/opt/gitlab \
    --restart always \
    --privileged=true \
    --name gitlab \
    gitlab/gitlab-ce:13.0.3-ce.0
    
  5. 访问http://ip:10000 , 根据提示输入新密码,登录,确认可以访问
  6. 将最新的备份包1695143223_2023_09_20_13.0.3_gitlab_backup.tar 包拷贝到/root/soft/gitlab/opt/backups/ (映射到容器内的/var/opt/gitlab/backups/)目录
  7. docker exec -it gitlab bash进入gitlab容器,执行命令
    # 关闭相关服务
    gitlab-ctl stop unicorn    
    gitlab-ctl stop sidekiq
    # 进入目录,修改权限
    cd /var/opt/gitlab/backups
    chmod 777 1695143223_2023_09_20_13.0.3_gitlab_backup.tar
    chown git.git 1695143223_2023_09_20_13.0.3_gitlab_backup.tar
    # 恢复备份数据
    gitlab-backup restore BACKUP=1695143223_2023_09_20_13.0.3
    # 根据提示输入yes 回车确认
    
  8. 将备份的(gitlab.rb 和) gitlab-secrets.json 文件拷贝到/root/soft/gitlab/etc (映射到容器内/etc/gitlab/)目录
  9. docker restart gitlab 重启
  10. docker logs -f gitlab 观察日志,没有异常且启动成功后再访问http://ip:10000,登录验证,发现数据已恢复

到了这里,关于Gitlab 备份和恢复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Centos使用Docker搭建自己的Gitlab(社区版和设置汉化、修改密码、设置SSH秘钥、添加拉取命令端口号、备份至网盘和恢复)

    根据我的经验 部署Gitlab(社区版) 至少需要2核4g的服务器 带宽3~4M 前端自动化(其一)部署gitlab(本章!) 前端自动化(其二)部署jenkins、配置环境、连接gitlab 前端自动化(其三)持续集成和持续部署 1. 在自己电脑上安装终端:宝塔ssl终端 或者 FinalShell,根据喜好安装即

    2024年01月23日
    浏览(48)
  • Centos使用Docker搭建自己的Gitlab社区版16.8.0-ce.0(设置汉化 修改密码 设置SSH秘钥 添加拉取命令端口号 备份至网盘和恢复)

    根据我的经验 部署Gitlab(社区版) 至少需要2核4g的服务器 带宽3~4M 前端自动化(其一)部署gitlab(本章!) 前端自动化(其二)部署jenkins、配置环境、连接gitlab 前端自动化(其三)持续集成和持续部署 1. 在自己电脑上安装终端:宝塔ssl终端 或者 FinalShell,根据喜好安装即

    2024年01月23日
    浏览(43)
  • gitlab本地备份(自动定时备份)

    gitlab本地定时备份 一、准备工作 本地默认备份路径:/var/opt/gitlab/backups gitlab备份命令:gitlab-rake gitlab:backup:create gitlab恢复命令:gitlab-rake gitlab:backup:restore BACKUP=备份包名 gitlab备份配置修改:/etc/gitlab/gitlab.rb 二、修改gitlab配置参数 进入配置参数 vi /etc/gitlab/gitlab.rb 修改以下字

    2024年02月04日
    浏览(74)
  • 记Gitlab备份与设置自动备份

    今天给Gitlab做了一个备份,并且设置了每天自动备份,记录一下。 由于Gitlab Web页面并没有自动备份的相关设置,只有各个项目有一个“导出项目”功能。为了保证安全,先把所有项目全部使用“导出项目”功能导出一遍,并复制出来。通过笔者之前的博文《gitlab迁移记》,

    2024年02月09日
    浏览(38)
  • GitLab备份升级

    数据备份(默认的备份目录在/var/opt/gitlab/backups/下,生成一个以时间节点命名的tar包。) 新建repo源,升级新版本的gitlab 查看版本号: 升级必须按照版本号一步一步依次升级 官网文档 第一步:停止服务 第二步:启动数据库 第三步:开始安装升级(比如当前版本是11.8.6需要升级

    2024年02月14日
    浏览(41)
  • Gitlab 数据备份

    1、Gitlab 创建备份 1.1、手动备份 创建备份文件 使用一条命令即可创建完整的Gitlab备份。 gitlab-rake gitlab:backup:create 使用命令会在/var/opt/gitlab/backups目录下创建一个压缩包,这个压缩包就是Gitlab整个的完整部分。 [root@server ~]# gitlab-rake gitlab:backup:create 生成完后,/var/opt/gitlab/bac

    2023年04月21日
    浏览(30)
  • docker中安装gitlab,并完成gitlab容器迁移包括相关数据备份

    docker拉取gitlab 启动容器 更改配置信息 重新启动 服务器开放端口 测试运行 将这个gitlab容器迁移到另外一个服务器上,并且把数据备份 查看容器名称和容器ID 查看容器对应的挂载目录 得到宿主机与容器的映射关系,方便我们在宿主机内更改配置文件 进入容器并将数据备份

    2024年02月03日
    浏览(42)
  • gitlab 16.2.4 恢复

    新创建新gitlab,版本需和备份的gitlab版本一致 docker run  -d  -p 322:22 -p 822:80 --name gitlab_1   gitlab/gitlab-ce:16.2.4-ce.0 进入容器内部   docker exec -it c51685817e27 /bin/bash   新的环境至少运行过一次, sudo gitlab-ctl reconfigure 确认GitLab是否 正常运行, sudo gitlab-ctl status 使用gitlab-ctl命令停

    2024年04月26日
    浏览(27)
  • gitlab备份迁移后修改项目报500错误

    gitlab通过备份迁移后,在修改或是删除项目时,报500错误,原因是迁移前后的token不一致导致的 解决办法:需要进入gitlab内置的数据库,将所有的token清除掉 进入gitlab内置的数据库:适用于gitlab的14.8.2-ee版本,其他版本的命令可能会不一致 执行以下命令,将token进行删除: 刷

    2024年02月12日
    浏览(37)
  • 常用环境部署(十三)——GitLab整体备份及迁移

    注意: 由于我的GitLab是docker安装的,所以我的操作都是在容器内操作的,大家如果不是用docker安装的则直接执行命令就行。 链接:常用环境部署(八)——Docker安装GitLab-CSDN博客 (1)进入容器 (2)备份 (3)备份成功  注意: 备份过程中会提示创建备份文件,备份完成后大家

    2024年02月03日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包