天天看点

git学习------> Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

前段时间,在某台CenterOS服务器上搭建了Gitlab环境,并且大家陆陆续续的都把代码从svn迁移到了gitlab,但是之前的CenterOS服务器并不是搭建在公司的机房环境,而是搭建在办公室的某台闲置的电脑上,因此为了保证数据安全性,领导要求为将之前的Gitlab数据全部重新迁移到公司机房的服务器上面去。

首先我们得把老服务器上的Gitlab整体备份,使用Gitlab一键安装包安装Gitlab非常简单, 同样的备份恢复与迁移也非常简单. 使用一条命令即可创建完整的Gitlab备份。

使用以上命令会在/var/opt/gitlab/backups目录下创建一个名称类似为1502357536_2017_08_10_9.4.3_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1502357536_2017_08_10_9.4.3是备份创建的日期

/etc/gitlab/gitlab.rb 配置文件须备份

/var/opt/gitlab/nginx/conf nginx配置文件

/etc/postfix/main.cfpostfix 邮件配置备份

git学习------> Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

生成完后,/var/opt/gitlab/backups目录创建一个名称类似为1502357536_2017_08_10_9.4.3_gitlab_backup.tar的压缩包

git学习------> Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

当然你也可以通过/etc/gitlab/gitlab.rb配置文件来修改默认存放备份文件的目录

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

git学习------> Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

修改完成之后使用下面命令重载配置文件即可.

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

其中:

m: 表示分钟,可以是从0到59之间的任何整数。

h:表示小时,可以是从0到23之间的任何整数。

dom:表示日期,可以是从1到31之间的任何整数。

mon:表示月份,可以是从1到12之间的任何整数。

dow:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

user : 表示执行的用户。

command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件(如shell文件)。

实现每天凌晨2点进行一次自动备份:通过crontab使用备份命令实现,需重启cron服务

方法1、在命令行输入: crontab -e 然后添加相应的任务,wq存盘退出。

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

然后再编辑框内输入相应的任务

git学习------> Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

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

然后再 /etc/crontab中,添加相关任务定时执行 auto_backup.sh 脚本文件

git学习------> Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

/etc/crontab 中添加执行脚本的定时任务,代码如下:

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

实际运行如下

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

<a href="http://www.cnblogs.com/junrong624/p/4239517.html" target="_blank">http://www.cnblogs.com/junrong624/p/4239517.html</a>

<a href="http://blog.csdn.net/xiyuan1999/article/details/8160998" target="_blank">http://blog.csdn.net/xiyuan1999/article/details/8160998</a>

<a href="http://www.cnblogs.com/kaituorensheng/p/4494321.html" target="_blank">http://www.cnblogs.com/kaituorensheng/p/4494321.html</a>

关于gitlab备份可以参考链接:

<a href="http://blog.csdn.net/utopiaprince/article/details/50039989" target="_blank">http://blog.csdn.net/utopiaprince/article/details/50039989</a>

<a href="http://www.cnblogs.com/shansongxian/p/6599144.html" target="_blank">http://www.cnblogs.com/shansongxian/p/6599144.html</a>

<a href="http://www.ttlsa.com/linux/gitlab-backup-restore/" target="_blank">http://www.ttlsa.com/linux/gitlab-backup-restore/</a>

<a href="https://github.com/sund/auto-gitlab-backup" target="_blank">https://github.com/sund/auto-gitlab-backup</a>

<a href="https://gitlab.com/help/raketasks/backup_restore.md" target="_blank">https://gitlab.com/help/raketasks/backup_restore.md</a>

<a href="http://blog.csdn.net/felix_yujing/article/details/52918803" target="_blank">http://blog.csdn.net/felix_yujing/article/details/52918803</a>

关于如何将gitlab备份文件备份到远程备份服务器,参考链接:

<a href="http://blog.csdn.net/ouyang_peng/article/details/77334215" target="_blank">Git学习–&gt;如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器?</a>

<a href="http://blog.csdn.net/ouyang_peng/article/details/77334215" target="_blank">http://blog.csdn.net/ouyang_peng/article/details/77334215</a>

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

git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

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

git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

可以参考之前的博客:

<a href="http://blog.csdn.net/ouyang_peng/article/details/72903221" target="_blank">git学习——&gt;在CenterOS系统上安装GitLab并自定义域名访问GitLab管理页面</a>

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

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

[用户名 @IP 地址 :] 可以不输入 , 可能需要输入远程用户名所对应的密码 .

可能有用的几个参数 :

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

-C 使能压缩选项 .

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

-4 强行使用 IPV4 地址 .

-6 强行使用 IPV6 地址 .

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

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

git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

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

第二步,执行命令停止相关数据连接服务

第三步,执行命令从备份文件中恢复Gitlab

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

敲完命令后,出现第一个交互页面,

输入“yes”继续。

git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

恢复过程中。。。。。

git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

出现第二个交互页面,

git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档
git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

第四步,启动Gitlab

git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档
git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档
git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

对比,可以发现,除了两台服务器的ip地址不一样之外,其他的内容完全一模一样,迁移成功!

<a href="http://www.xuliangwei.com/xubusi/803.html">Gitlab备份与恢复、迁移与升级</a>

<a href="http://www.xuliangwei.com/xubusi/803.html">http://www.xuliangwei.com/xubusi/803.html</a>

<a href="https://segmentfault.com/a/1190000002439923">使用Gitlab一键安装包后的日常备份恢复与迁移</a>

<a href="https://segmentfault.com/a/1190000002439923">https://segmentfault.com/a/1190000002439923</a>

<a href="http://www.cnblogs.com/shansongxian/p/6599144.html">http://www.cnblogs.com/shansongxian/p/6599144.html</a>

<a href="http://blog.csdn.net/jenyzhang/article/details/53928438">http://blog.csdn.net/jenyzhang/article/details/53928438</a>

<a href="http://www.cnblogs.com/junrong624/p/4239517.html">http://www.cnblogs.com/junrong624/p/4239517.html</a>

<a href="http://blog.csdn.net/xiyuan1999/article/details/8160998">http://blog.csdn.net/xiyuan1999/article/details/8160998</a>

<a href="http://www.cnblogs.com/kaituorensheng/p/4494321.html">http://www.cnblogs.com/kaituorensheng/p/4494321.html</a>

<a href="http://blog.csdn.net/utopiaprince/article/details/50039989">http://blog.csdn.net/utopiaprince/article/details/50039989</a>

<a href="http://www.ttlsa.com/linux/gitlab-backup-restore/">http://www.ttlsa.com/linux/gitlab-backup-restore/</a>

<a href="https://github.com/sund/auto-gitlab-backup">https://github.com/sund/auto-gitlab-backup</a>

<a href="https://gitlab.com/help/raketasks/backup_restore.md">https://gitlab.com/help/raketasks/backup_restore.md</a>

<a href="http://blog.csdn.net/felix_yujing/article/details/52918803">http://blog.csdn.net/felix_yujing/article/details/52918803</a>

<a href="http://blog.csdn.net/ouyang_peng/article/details/77334215">Git学习–&gt;如何通过Shell脚本自动定时将Gitlab备份文件复制到远程服务器?</a>

<a href="http://blog.csdn.net/ouyang_peng/article/details/77334215">http://blog.csdn.net/ouyang_peng/article/details/77334215</a>

git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档
作者:欧阳鹏 欢迎转载,与人分享是进步的源泉! 如果本文对您有所帮助,欢迎您扫码下图所示的支付宝和微信支付二维码对本文进行打赏。
git学习------&amp;gt; Gitlab如何进行备份恢复与迁移?1、Gitlab 创建备份2、 Gitlab迁移2.1 copy老服务器上面的备份文件到新服务器3、打开迁移后的Gitlab,进行对比参考文档

继续阅读