备份数据

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