备份数据
1.确定备份的路径
[root@localhost ~]# cat /etc/gitlab/gitlab.rb |grep backup_path
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
2.备份数据
[root@localhost ~]# /usr/bin/gitlab-rake gitlab:backup:create
[root@localhost ~]# ls /var/opt/gitlab/backups/1632002877_2021_09_19_12.3.5_gitlab_backup.tar
/var/opt/gitlab/backups/1632002877_2021_09_19_12.3.5_gitlab_backup.tar
也可以做定时任务通过脚本备份
[root@localhost ~]# crontab -l
0 6 * * 0 /server/scripts/backup_gitlab.sh 2>&1 > /dev/null #每周日的早上六点备份gitlab数据
[root@localhost ~]# cat /server/scripts/backup_gitlab.sh
#!/bin/bash
wx(){
curl 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=b2d0bdd0-0177-441d-9406-cfce1f73fed9'
-H 'Content-Type: application/json'
-d '
{
"msgtype": "markdown",
"markdown": {
"content": "'"$1"'"
}
}'
}
/usr/bin/gitlab-rake gitlab:backup:create
if [ $? == 0 ];then
scp -rp $(find /var/opt/gitlab/backups/ -type f ) root@192.168.1.53:/data/docker/yum/gitlab/backup && rm -rf /var/opt/gitlab/backups/*
if [ $? ==0 ];then
rm -rf /var/opt/gitlab/backups/*
ssh root@192.168.1.53 'find /data/docker/yum/gitlab/backup/ -type f -mtime +30 |xargs -i rm -rf {} '
else
wx "## ${ZH_NAME} <font color=warning>gitlab备份数据传53送失败!</font> "
fi
else
wx "## ${ZH_NAME} <font color=warning>gitlab备份数据失败!</font> "
fi
恢复数据
1.下载安装包 汉化包
wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
wget https://gitlab.com/xhang/gitlab/-/archive/v12.3.5-zh/gitlab-v12.3.5-zh.tar
2.安装gitlab
yum install -y curl postfix policycoreutils-python openssh-server wget
yum localinstall gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm -y
3.修改对外暴露服务的端口号 时区
[root@localhost gitlab]# vim /etc/gitlab/gitlab.rb
#修改nginx端口号
nginx[‘listen_port’] = 8088
gitlab_rails['time_zone'] = 'Asia/Shanghai'
[root@localhost gitlab]# gitlab-ctl reconfigure
[root@localhost gitlab]# gitlab-ctl restart
4.汉化
#停止gitlab
[root@localhost data]# gitlab-ctl stop
#解压汉化包
[root@localhost data]# tar xf gitlab-v12.3.5-zh.tar.gz
#覆盖语言包
[root@localhost data]# cp -r gitlab-v12.3.5-zh/* /opt/gitlab/embedded/service/gitlab-rails/
cp: 无法以目录"gitlab-v12.3.5-zh/log" 来覆盖非目录"/opt/gitlab/embedded/service/gitlab-rails/log"
cp: 无法以目录"gitlab-v12.3.5-zh/tmp" 来覆盖非目录"/opt/gitlab/embedded/service/gitlab-rails/tmp"
#开启gitlab
[root@localhost data]# gitlab-ctl start
5.恢复数据
chmod 777 /var/opt/gitlab/backups/1632002877_2021_09_19_12.3.5_gitlab_backup.tar
cd /var/opt/gitlab/backups
gitlab-ctl stop unicorn && gitlab-ctl stop sidekiq
gitlab-rake gitlab:backup:restore BACKUP=1632002877_2021_09_19_12.3.5
参考文档: https://blog.csdn.net/w309827333/article/details/108754484