gitlab备份、迁移、恢复和升级指南
背景:在项目中使用Linux服务器作为Gitlab仓库,需要每天自动定时备份数据到Windows上,以防止服务器磁盘损坏导致数据丢失。
操作步骤:
- Gitlab备份操作:执行备份操作后,备份文件会默认生成在/var/opt/gitlab/backups文件夹下。
[root@master opt]# ls /var/opt/gitlab/backups/1596532146_2020_08_04_13.1.4_gitlab_backup.tar 1596532193_2020_08_04_13.1.4_gitlab_backup.tar
配置Linux访问Windows免密登录:为了方便Shell脚本通过scp传输Gitlab备份文件,需配置Linux对Windows的免密登录。具体配置方法请参考:Win7安装OpenSSH服务,并配置Linux对Windows免密登录。
编写Shell导出脚本:以下是用于导出备份文件到Windows的Shell脚本示例:
I-Shop购物系统下载部分功能简介:商品收藏夹功能热门商品最新商品分级价格功能自选风格打印结算页面内部短信箱商品评论增加上一商品,下一商品功能增强商家提示功能友情链接用户在线统计用户来访统计用户来访信息用户积分功能广告设置用户组分类邮件系统后台实现更新用户数据系统图片设置模板管理CSS风格管理申诉内容过滤功能用户注册过滤特征字符IP库管理及来访限制及管理压缩,恢复,备份数据库功能上传文件管理商品类别管理商品添加/修改/
#!/bin/sh
scp_linux_path='/var/opt/gitlab/backups/'
scp_windows_uri='user@192.168.1.58:E:\tmp'
scp_log_path='/opt/gitlabscp.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
scp $scp_linux_path$filename $scp_windows_uri- 配置Linux定时任务:通过以下命令配置Linux的定时任务,每天凌晨1点定时将Gitlab备份文件导出到Windows主机。
0 1 * * * /opt/gitlabscp.sh
注意:Linux的crontab cron表达式的最小单位为分钟。
- Gitlab恢复:恢复Gitlab数据时,需停止相关服务,修改备份文件权限,执行恢复操作,然后启动Gitlab并通过UI界面查看恢复是否成功。










