一、Gocron使用定时器备份gitlab
1、通过定时器备份gitlab
安装参考链接: https://www.cnblogs.com/jjwiki/p/18959848
2、通过系统工具执行任务
通过 crontab -e 设置定时任务(例如每天凌晨2点执行):
0 2 * * * /opt/scripts/gitlab_backup.sh
3、备份命令
创建 GitLab 备份
sudo gitlab-rake gitlab:backup:create
# 使用 rsync 同步备份文件(跳过已存在的 .tar 文件)
# rsync -av --ignore-existing /var/opt/gitlab/backups/*2025_07*.tar 192.168.8.112:/data/backup/gitlab/
rsync -av --ignore-existing /var/opt/gitlab/backups/*$(date +%Y_%m)*.tar 192.168.8.112:/data/backup/gitlab/
# 同步配置文件(始终更新为最新版本)
rsync -av /etc/gitlab/gitlab.rb 192.168.8.112:/data/backup/gitlab/
rsync -av /etc/gitlab/gitlab-secrets.json 192.168.8.112:/data/backup/gitlab/
0 0 2 * 7
sudo gitlab-rake gitlab:backup:create
scp /etc/gitlab/gitlab.rb 192.168.8.112:/data/backup/gitlab
scp /etc/gitlab/gitlab-secrets.json 192.168.8.112:/data/backup/gitlab
scp /var/opt/gitlab/backups/*2025_07*.tar 192.168.8.112:/data/backup/gitlab
二、安装gitlab13.12.15
1、下载gitlab
https://packages.gitlab.com/app/gitlab/gitlab-ce/search?dist=ubuntu&filter=debs&page=1&q=1
2、安装依赖
sudo yum install -y curl openssh-server ca-certificates postfix file git build-essential
##签名出错强制安装
rpm -ivh gitlab-ee-13.12.10-ee.el7.x86_64.rpm --nodeps --force
3、配置Gitlab域名
[root@gitlab-haitang ~]# vim /etc/gitlab/gitlab.rb
external_url 'http://gitlab.haitang.local'
4、重新载入配置验证结果
# 重新载入配置文件
sudo gitlab-ctl reconfigure
# 启动查看
gitlab-ctl start
gitlab-ctl status
netstat -tnlp
三、还原备份文件
1、停止相关服务
gitlab-ctl stop puma && gitlab-ctl stop sidekiq && gitlab-ctl stop nginx && gitlab-ctl status
2、将备份的压缩包拷贝到备份目录
cd /data/backup/gitlab/
ls
mv 1751565890_2025_07_04_13.12.10-ee_gitlab_backup.tar /var/opt/gitlab/backups/
3、还原配置文件
cp /data/backup/gitlab/gitlab.rb /etc/gitlab/gitlab.rb
cp /data/backup/gitlab/gitlab-secrets.json /etc/gitlab/gitlab-secrets.json
4、还原备份的项目
#注意还原的时候把ee版本带上
gitlab-rake gitlab:backup:restore BACKUP=1751565890_2025_07_04_13.12.10-ee
#还原的时候输入两边yes等待结束即可
5、重新载入配置重启服务
gitlab-ctl reconfigure &&gitlab-ctl restart
#如果ip地址发生变化,请修改配置文件后,重新载入配置,重启服务
vi /etc/gitlab/gitlab.rb
修改约第32行配置文件
gitlab-ctl reconfigure &&gitlab-ctl restart
6、启动查看运行状态
gitlab-ctl status
netstat -tnlp