之前写过gitlab 安装以及卸载,今天再来说说数据迁移备份。

查看 GitLab 版本号

cat /opt/gitlab/embedded/service/gitlab-rails/VERSION

在新的服务器上做迁移的准备:
停止相关数据连接服务

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

将备份好的文件存储到 /var/opt/gitlab/backups 目录下

修改备份文件权限

chmod 477 1597681929_2020_08_18_12.0.4_gitlab_backup.tar

执行命令从备份文件中恢复Gitlab

gitlab-rake gitlab:backup:restore BACKUP=备份文件编号

备份文件的编号是1597681929_2020_08_18_12.0.4,因此执行下面的命令即可恢复gitlab

gitlab-rake gitlab:backup:restore BACKUP=1597681929_2020_08_18_12.0.4

执行命令后,出现第一个交互页面

gitlab迁移群组 gitlab整体迁移_gitlab


gitlab迁移群组 gitlab整体迁移_gitlab_02

启动git 就ok了!

# 启动gitlab
gitlab-ctl restart

一、手动备份

一个命令即可搞定。备份操作时不能关闭gitlab的服务。
docker 安装

docker exec -it [容器名] [指定目录]

docker exec -it gitlab /bin/bash

执行

gitlab-rake gitlab:backup:create

会在/var/opt/gitlab/backups目录下创建一个名称类似为1530156812_2018_06_28_10.8.4_gitlab_backup.tar的压缩包, 这个压缩包就是Gitlab整个的完整部分, 其中开头的1530156812_2018_06_28_10.8.4是备份创建的日期

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

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

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

二、自动备份

1.创建备份脚本文件auto_backup.sh:

#! /bin/bash
docker exec gitlab gitlab-rake gitlab:backup:create

2./etc/crontab定时任务配置文件:

0 2 * * * root /data/gitlab/data/backups/auto_backup.sh
*  *  *  *  *  command
分  时  日  月  周  命令

其中,
第1列表示分钟,1~59,每分钟用*表示
第2列表示小时,1~23,(0表示0点)
第3列表示日期,1~31
第4列表示月份,1~12
第5列表示星期,0~6(0表示星期天)
第六列表示要运行的命令。

三、设置cron服务开机启动

/sbin/service crond start 服务启动
/sbin/service crond stop  服务停止
/sbin/service crond restart 服务重新启动
/sbin/service crond reload  服务重新加载配置

系统在root用户下,crontab -e 命令编辑设置定时任务。
cron服务是Linux的内置服务,但是其不会自动开机启动。
在/etc/rc.d/rc.local脚本中加入/sbin/service crond start 即可。

四、 GitLab自动备份
新建备份的sh文件:在/root 下新建gitlab_backup.sh ,

#! /bin/bash
case "$1" in 
    start)
            docker exec gitlab gitlab-rake gitlab:backup:create
            ;;
esac

新增定时任务:使用crontab -e 进入定时任务编辑界面,新增如下内容:

0 2 * * * /root/gitlab_backup.sh start

自动清理备份
1.创建备份脚本文件auto_delete.sh:

find /home/gitlab/data/backups/ -mtime +7 -type f -name "*.tar" -exec rm -rf {} \;

寻找并删除 /home/gitlab/data/backups/ 目录下内容修改时间(mtime)为7天以前的tar文件(-type f),并删除(rm -rf)

2./etc/crontab定时任务配置文件:

* 22 * * 6 root /home/gitlab/data/backups/auto_delete.sh
* 22 * * 6 每周六夜晚22点

这些都更改好后,记得修改服务器仓库链接:

* 查看现有的链接
git remote -v

* 新建新的链接
git remote set-url origin new_url

就是这个样子滴!

gitlab迁移群组 gitlab整体迁移_定时任务_03