之前写过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
执行命令后,出现第一个交互页面
启动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
就是这个样子滴!