关于gitlab代码的备份
要求:
- 每天备份一次,备份至少7天的数据
- 备份到远程服务器
开始
编写备份脚本
gitlab_back.sh
#! /bin/bash
# gitlab 机房备份路径
LocalBackDir=/var/opt/gitlab/backups
# 远程备份服务器 gitlab备份文件存放路径
RemoteBackDir=/root/gitlabDataBackup
# 远程备份服务器 登录账户
RemoteUser=root
# 远程备份服务器 IP地址
RemoteIP=192.168.2.202
#当前系统日期
DATE=`date +"%Y-%m-%d"`
#Log存放路径
LogFile=/var/gitlab/logs/$DATE.log
#start gitlab backup
gitlab-rake gitlab:backup:create CRON=1
# 查找 本地备份目录下 时间为60分钟之内的,并且后缀为.tar的gitlab备份文件
BACKUPFILE_SEND_TO_REMOTE=$(find /var/opt/gitlab/backups -type f -mmin -60 -name '*.tar*')
#新建日志文件
touch $LogFile
#追加日志到日志文件
echo "Gitlab auto backup to remote server, start at $(date +"%Y-%m-%d %H:%M:%S")" >> $LogFile
echo "---------------------------------------------------------------------------" >> $LogFile
# 输出日志,打印出每次scp的文件名
echo "---------------------The file to scp to remote server is: $BACKUPFILE_SEND_TO_REMOTE-------------------------------" >> $LogFile
#备份到远程服务器
scp $BACKUPFILE_SEND_TO_REMOTE $RemoteUser@$RemoteIP:$RemoteBackDir
#追加日志到日志文件
echo "---------------------------------------------------------------------------" >> $LogFile
- gitlab代码保存位置(更具实际安装位置):/var/opt/gitlab/backups
- 远程服务备份位置:/root/gitlabDataBackup
- gitlab自带备份命令:gitlab-rake gitlab:backup:create CRON=1 执行后即在/var/opt/gitlab/backups下产生压缩包
服务器定时执行该备份脚本
0 2 * * * /bin/sh /opt/gitlab/gitlab_bak.sh >/dev/null 2>&1
提示:gitlab配置文件可修改gitlab备份的最新次数 /etc/gitlab/gitlab.rb
远程服务器定时清理备份文件,保存至少7天数据
脚本gitlab_clear.sh
#! /bin/bash
find /root/gitlabDataBackup -type f -mtime +7 -name '*.tar*' -delete ##删除7天前的数据
服务器定时脚本
0 2 * * * /bin/sh /opt/gitlab_clear.sh >/dev/null 2>&1
关于gitlab的密码重置
自建gitlab忘记密码,没配邮件服务,不能使用Forgot your password来重置。
可通过gitlab-rails工具包修改密码。具体操作方法如下:
进入服务器,如果采用docker安装的话
docker exec -it a12ae046733e /bin/bash
1,切换到git用户下
su – git
2,进入gitlab-rails console
3,根据邮箱查找用户ID,下图可见ID=14。如果知道ID,可忽略此步骤。
User.find_by(email:'123456@qq.com')
4,选定UID=14
user = User.where(id:4).first
5,设定密码为123456
user.password='123456'
:* 2. gitlab-psql 3. *#更新错误失败次数,继续登录* 4. update users set failed_attempts = 0;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 我与微信审核的“相爱相杀”看个人小程序副业
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求