关于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'

![image-20211126114137857](images/image-20211126114137857.png

6,保存,保存后看到产生一条job通知。

user.save!

按照规则设置密码

user.password='12345678'

如果root密码错误登陆超过10次,会锁定该账号

解决方法:

  1. 1. *#登录gitlab安装所在系统,执行(进入gitlab的postgresql安装客户端):*
    2. gitlab-psql
    3. *#更新错误失败次数,继续登录*
    4. update users set failed_attempts = 0;

Gitlab的备份以及密码重置的更多相关文章

  1. wordpress忘记密码重置

    一直使用浏览器记录密码的方式登陆wordpress,直到有一天重装系统,而浏览器的记录又没有备份,结果怎么也想不起当初所设定的密码了…… -_-||| 遂google了一番,发现了直接修改数据库重设密 ...

  2. Harbor密码重置 密码修改 admin密码重置

    Harbor密码重置harbor现在是使用postgresql 数据库了.不再支持mysql,网上有N多重置Mysql密码的,可以略过了.我密码错了默认的Harbor12345 修改为: RedHat ...

  3. Gitlab忘记root用户密码解决办法

    一.Gitlab忘记root用户密码,重置用户密码和查看用户ID号方法  1.Gitlab查看用户id号的方法1)方法1:通过api接口查询接口查询地址:http://gitlab的url/api/v ...

  4. docker中的gitlab数据备份、迁移和升级

    前期准备 数据备份 记录gitlab运行命令: docker run -itd --name gitlab \ --hostname gitlab.suniot.cn \ -p 443:443 -p ...

  5. 修改sys密码与nbu备份脚本密码后,nbu备份报密码无效

    公司要求口令强化,在修改sys密码后nbu的.sh脚本connect备份归档的sys/passwd也随之修改修改后每个业务备份均失败, 每次备份到归档那里就结束报密码无效,疑惑备份脚本密码也同步修改了 ...

  6. MySQL忘记密码,或:root密码重置报错:mysqladmin: connect to server at 'localhost' failed的解决方案

    MySQL root密码重置报错:mysqladmin: connect to server at 'localhost' failed的解决方案   1  登陆失败,mysqladmin修改密码失败 ...

  7. mysql server安装及密码重置

    官网上能下载到的mysql安装分两种:msi和zip安装 msi安装比较简单,直接下一步. 主要说zip格式的安装: 1.解压. zip解压后的文件夹改名后(也可以不改名)放在喜欢的位置.例如我放在C ...

  8. Ubuntu下MySQL忘记root密码重置

    MySQL忘记root密码肿么办?-_-|||   这种情况虽然不是很常见,但是有时长时间没有登录系统,还真会忘记密码.这时候,如果您能以系统管理员权限登陆密码,那还是有救的.放大招,将其重置即可. ...

  9. sybase SA密码重置

    sa 密码忘记解决之道: su - sybase cd ASE/install vi RUN_etoh2 在文件的末尾加入 -psa \ 停止原数据库服务 由于密码遗忘,所以只能通过kill进程停止服 ...

  10. mysql配置的讲解 mysql的root密码重置 mysql的登录

    一,MySQL配置的讲解 port  默认mysql端口 socket  用于服务器端和客户端通信的套连接文字 skip-locking 取消文件系统的外部锁 key_buffer_size  索引缓 ...

随机推荐

  1. PySide6/PyQt开发经验总结(2) - 设置快捷键

    Qt设置快捷键 本文仅供本人知识总结使用,所以内容会比较浅显,不喜勿喷. 目录 Qt设置快捷键 一.需要的类 QShortcut 函数: 二.设置快捷键 官方文档原文翻译: 我的理解: 一.需要的类 ...

  2. java_GUI

    package GUi;import java.awt.*;import static java.awt.Color.red;public class GuI { public static void ...

  3. express请求数据的获取(get和post)body-parser

    get请求 直接用res.query就可以拿到数据 post请求 需要使用中间件body-parser 第一步:安装body-parser npm i body-parser 第二步:按照模板进行使用 ...

  4. Mysql table 调整table的字符集和校对规则

    ALTER TABLE `xxxx`.`xxx` CHARACTER SET = utf8mb4 , COLLATE = utf8mb4_0900_ai_ci ;

  5. HttpContext.SignInAsync 失效(表面解决了问题,未深入到.net core 源码去找问题,记录一下,等有时间翻一下.net core 源码试试能不能找到根本原因)

    今天在弄 identityServer4 项目的时候,发现好好的登录竟然没用了. 各种跟踪后发现是 HttpContext.SignInAsync 这个方法不写cookies了 原本经过这个方法后,会 ...

  6. 合合信息亮相新加坡科技周——Big Data & AI World Expo展示AI驱动文档数字化的前沿能力

    合合信息亮相新加坡科技周--Big Data & AI World Expo展示AI驱动文档数字化的前沿能力   展会规模背景: 2023年10月11日-12日,合合信息在TECH WEEK ...

  7. CPP在内网穿透技术的思考

    概述 内网穿透是一种技术,用于在私有局域网(LAN)中的设备与外部网络(如互联网)之间建立通信通道,使得外部设备可以访问内网中的服务.由于内网设备通常位于防火墙或 NAT(网络地址转换)设备之后,外部 ...

  8. Angular 18+ 高级教程 – 学以致用

    前言 读这么多原理,到底为了什么?真实项目中真的会用得到吗? 你正在疑惑 "知识的力量" 吗? 本篇会给一个非常非常好的案例,让你感悟 -- 知识如何用于实战. 记住,我的目的是让 ...

  9. ASP.NET Core – Work with Environment (Development, Staging, Production)

    前言 这篇讲一讲发布和环境 (development, staging, production) 介绍 我的网站是 host 在 Azure 的 Virtual Machine, 跑 IIS, 没有使 ...

  10. CSS & JS Effect – fade in

    参考: stackoverflow – Is there a CSS-only (pure CSS) workaround to apply fade-in and fade-out on objec ...