zl程序教程

您现在的位置是:首页 >  其他

当前栏目

git学习------> Gitlab如何进行备份恢复与迁移?

amp备份迁移Git学习 如何 进行 gt
2023-09-27 14:29:23 时间

/var/opt/gitlab/backups修改为你想存放备份的目录即可,例如下面代码将备份路径修改为/mnt/backups


在crontab文件里面,每一行代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,每个字段之间用空格分割,没用的段用*代替,格式如下:


dom:表示日期,可以是从1到31之间的任何整数。 mon:表示月份,可以是从1到12之间的任何整数。 dow:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。 user : 表示执行的用户。 command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件(如shell文件)。

实现每天凌晨2点进行一次自动备份:通过crontab使用备份命令实现,需重启cron服务
方法1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。


#输入相应的任务 0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

方法2、直接编辑/etc/crontab 文件,即vi /etc/crontab,然后添加相应的任务


# edited by ouyang 2017-8-11 添加定时任务,每天凌晨两点,执行gitlab备份

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

这里写图片描述

或者直接定时执行一个脚本 auto_backup.sh ,脚本内容为


#也可以按照如下所示的方法,定时执行 auto_backup.sh脚本,脚本内容就填写: /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1 

0 2 * * * root /data/gitlabData/backups/auto_backup.sh -D 1 

编写完 /etc/crontab 文件之后,需要重新启动cron服务


root@ubuntu4146:~# sudo /usr/sbin/service cron reload

root@ubuntu4146:~# sudo /usr/sbin/service cron restart 

cron stop/waiting

cron start/running, process 17738

关于Cron表达式可以参考链接:


设置只保存最近7天的备份,编辑 /etc/gitlab/gitlab.rb 配置文件,找到gitlab_rails[‘backup_keep_time’],设置为你想要设置的值,然后保存。


第一步,新服务器上的Gitlab的版本必须与创建备份时的Gitlab版本号相同. 比如新服务器安装的是最新的9.4.3版本的Gitlab, 那么迁移之前, 最好将老服务器的Gitlab 升级为9.4.3再进行备份.

这里写图片描述

可以参考之前的博客:
git学习—— 在CenterOS系统上安装GitLab并自定义域名访问GitLab管理页面


第二步,如果你没修改过默认备份目录的话,需要将老服务器上的备份文件目录(/var/opt/gitlab/backups目录)下的备份文件拷贝到新服务器上的/var/opt/gitlab/backups目录。

使用scp命令从远程服务器copy文件或者目录到本地


-v 和大多数 linux 命令中的 -v 意思一样 , 用来显示进度 . 可以用来查看连接 , 认证 , 或是配置错误 .

-C 使能压缩选项 .

-P 选择端口 . 注意 -p 已经被 rcp 使用 .

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .

例如我使用如下命令,从远程服务器copy刚才的备份文件到了新服务器的/var/opt/gitlab/backups/ 目录下


scp root@172.28.17.155:/var/opt/gitlab/backups/1502357536_2017_08_10_9.4.3_gitlab_backup.tar /var/opt/gitlab/backups/

copy完后,查看copy的文件如下

这里写图片描述


第一步,将备份文件权限修改为777,不然可能恢复的时候会出现权限不够,不能解压的问题


例如我们的备份文件的编号是1502357536_2017_08_10_9.4.3,因此执行下面的命令即可恢复gitlab


root@ubuntu4146:/var/opt/gitlab/backups# gitlab-rake gitlab:backup:restore BACKUP=1502357536_2017_08_10_9.4.3

Unpacking backup ... done

Before restoring the database we recommend removing all existing

tables to avoid future upgrade problems. Be aware that if you have

custom tables in the GitLab database these tables and all data will be

removed.

Do you want to continue (yes/no)? 

输入“yes”继续。
这里写图片描述

恢复过程中。。。。。
这里写图片描述

出现第二个交互页面,


作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng/article/details/76220621

如果本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行打赏。


git,github,gitlab,码云的区别 码云https://gitee.com/enterprises?from=tg-6-7是开源中国社区推出的基于git的代码托管服务平台,基于gitlab。目前招商银行,中国科学技术大学,CSDN等多家企业和机构都在使用码云平台
Gitlab上手指南(八)|企业中常见的git规范介绍和husky+commitlint集成 俗话说,没有规矩不成方圆,我们的git也需要规范。 下面介绍一下企业常用的一些规范。 分支管理规范 分支命名不能千奇百怪,必须有统一的命名方式。主要有以下几种: 分支管理 命名规范 解释 master
Gitlab上手指南(四)|从gitlab上clone项目的两种正确姿势以及常用的git可视化工具介绍 上一节我们已经创建了一个项目,本节课我就把这个项目clone到本地,然后实操一下常用git命令 git clone clone的方式有下面两种,一种是SSH,一种是HTTPS,两种克隆方式的主要区别在
字节卷动 You will never know how excellent you are unless you impel yourself once.