linux上gitlab备份与还原

2023-09-21 17:32:28

三 Gitlab备份

1.gitlab安装

1.1 添加镜像地址

添加镜像地址的目的是为了提高国内用户软件下载的速度,编辑(新建)文件gitlab-ce.repo,指令:

vi /etc/yum.repos.d/gitlab-ce.repo

复制

输入:

[gitlab-ce]
name=gitlab-ce
# 清华大学的镜像源
baseurl=http://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7
repo_gpgcheck=0
gpgcheck=0
enabled=1
gpgkey=https://packages.gitlab.com/gpg.key
1.2 安装依赖

依次输入以下指令

# 安装和配置openssh
sudo yum install curl policycoreutils-python openssh-server openssh-clients
sudo systemctl enable sshd
sudo systemctl start sshd
# 安装和配置邮件服务
sudo yum install postfix
sudo systemctl enable postfix
sudo systemctl start postfix
1.3 安装gitlab指定版本14.0.0
curl -LJO https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-14.0.0-ce.0.el7.x86_64.rpm

在这里插入图片描述

在这里插入图片描述

安装:

rpm -i gitlab-ce-14.0.0-ce.0.el7.x86_64.rpm

警告:gitlab-ce-14.0.0-ce.0.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID f27eab47: NOKEY

在这里插入图片描述

1.4 配置gitlab
sudo gitlab-ctl reconfigure

在这里插入图片描述

1.5 更改GitLab端口,

编辑文件gitlab.rb:

vim /etc/gitlab/gitlab.rb
external_url 'http://192.168.20.247:8091' 

nginx['listen_port'] = 8091 

nginx['listen_https'] = false

更改nigx端口,编辑文件gitlab-http.conf:

vim /var/opt/gitlab/nginx/conf/gitlab-http.conf


server {
listen *:8091;
server_name 47.110.230.147;
...
if ($http_host = "") {
   set $http_host_with_default "47.110.230.147:8091";
}
}

在这里插入图片描述

在这里插入图片描述

保存修改,执行以下指令:

gitlab-ctl reconfigure
1.6 启动并访问

启动GitLab:

gitlab-ctl restart

#停止gitlab
gitlab-ctl stop

在这里插入图片描述

对应端口放行

sudo firewall-cmd --permanent --zone=public --add-port=8091/tcp 

sudo firewall-cmd --reload

查看默认的账号密码

vi /etc/gitlab/initial_root_password

在这里插入图片描述

2.gitlab备份还原

  • 特别注意:

· 备份目录和gitlab.rb中定义的备份目录必须一致

· GitLab的版本和备份文件中的版本必须一致,否则还原时会报错。

在这里插入图片描述

执行下备份命令

gitlab-rake gitlab:backup:restore BACKUP=/var/opt/gitlab/backups/1676883915_2023_02_20_14.0.0

注意:后面文件名称不用加_gitlab_backup.tar

在这里插入图片描述

在这里插入图片描述

中途输入两次yes

备份完后,可以看出已经还原成功

在这里插入图片描述

3.备份策略(每天23:30都进行备份作业)

  • 修改备份的路径和备份的策略

    输入配置修改对应的路径

    vim /etc/gitlab/gitlab.rb
    
    gitlab_rails['manage_backup_path'] = true
    #备份的路径
    gitlab_rails['backup_path'] = "/home/gitlab/backups"
    #生成的备份文件权限
    gitlab_rails['backup_archive_permissions'] = 0644
    #保留文件7天
    gitlab_rails['backup_keep_time'] = 604800
    
    

    保存并退出

  • 更改完成后重载配置文件

gitlab-ctl reconfigure

执行备份命令

gitlab-backup create

可以看到我们备份已经成功了

在这里插入图片描述

设置脚本

touch gitlab.sh

chmod 777 gitlab.sh
vi gitlab.sh

#输出一下内容

#!/bin/bash     
echo '开始执行gitlab备份'
gitlab-backup create
echo 'gitlab备份结束'

DATE=`date +%Y%m%d`            #定义时间的格式,注意需要反引号。       
REMOTEDIR=/home/backups/gitlab #远程本地服务器地址路径

localData=/var/opt/gitlab/backups   #本机数据地址路径
echo "开始进行gitlab数据迁移到本地服务器"
expect << EOF
set timeout -1
spawn scp -P 85-r $localData  root@112.94.31.288:$REMOTEDIR/$DATE
expect eof
exit
EOF
echo "数据gitlab迁移到本地服务器结束"
crontab -e

输入备份的时间(每天23:30都进行备份作业)

30 23 * * * /home/backups/gitlab/gitlab.sh > /tmp/gitlab.log 2>&1
crontab -l

本地服务器也要设置时间脚本

touch date.sh

脚本内容

#!/bin/bash     
echo '开始新建目录'
DATE=`date +%Y%m%d`            #定义时间的格式,注意需要反引号。
DIR=/home/backups/gitlab      #这里定义创建文件夹的地址。
mkdir  -p  $DIR/$DATE          #创建文件夹的语句,把上面两个变量引用进来。
echo '新建目录完成'

打开定时任务

crontab -e

输入备份时间

29 23 * * *  /home/backups/gitlab/date.sh > /tmp/gitlab.log 2>&1
crontab -l
更多推荐

大模型为使用Prompt提供的指导和建议

当使用大型语言模型时,合适的Prompt对于获取理想的响应至关重要。以下是一些常见任务的Prompt示例,以供参考:1.自然语言生成:“请为我生成一篇关于气候变化影响的文章。”“写一封感谢信,内容表达对某位导师的感激之情。”“编写一首诗,描述夏天的美丽。”2.问答任务:“回答以下问题:什么是人工智能?”“解释量子力学的

Java 泛型

目录(generic泛型)引言-idea技巧(快捷键)泛型的理解和好处传统方式用泛型来解决前面的问题(快速入门)泛型的好处泛型基本语法泛型介绍示例代码泛型的声明泛型的实例化(什么时候给泛型指定一个具体的类型)-一般来说是创建一个对象的时候指定的示例代码泛型语法和使用泛型使用案例自定义泛型自定义泛型类自定义泛型接口自定义

Prompt-To-Prompt——仅通过文本进行图像编辑

文章目录1.摘要2.算法2.1Cross-attentionintext-conditionedDiffusionModels2.2ControllingtheCross-attentionWordSwapAddingaNewPhraseAttentionRe–weighting3.应用Text-OnlyLocaliz

【C++】动态内存管理 ④ ( 对象的动态创建和释放引申思考 | 基础数据类型 内存分析 | malloc 分配内存 delete 释放 | new 分配内存 free 释放内存 )

文章目录一、对象的动态创建和释放引申思考二、基础数据类型内存分析1、malloc分配内存delete释放内存2、new分配内存free释放内存一、对象的动态创建和释放引申思考malloc和free是C语言stdlib标准库中的函数,用于分配和回收堆内存;new和delete是C++语言中的操作符,用于分配和回收堆内存;

[C++从入门到精通] 9.inline、const、mutable、this和static

📢博客主页:https://loewen.blog.csdn.net📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢本文由丶布布原创,首发于CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览:一.特殊的成员函数inline二.成员函数末尾的const三.mutable四.返回

【Graph Net学习】LINE实现Graph Embedding

一、简介LINE(Large-scaleInformationNetworkEmbedding,2015)是一种设计用于处理大规模信息网络的算法。它主要的目标是在给定的大规模信息网络中学习高质量的节点嵌入,并尽量保留网络中信息的丰富性。其具体的表现为在一个低维空间里以向量形式表示网络中的节点,以便后续的机器学习任务可以

Kafka实现保证一批消息顺序生产消费的方案

背景ApacheKafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者和生产者之间的所有实时数据。在Kafka中,消息是以topic为单位进行归类的,而每个topic又可以分为多个partition,以实现数据的高效存储和并发处理。然而,由于Kafka的设计特性,消息在消费时并不能保证顺序。为了解决这个问题

【网络编程】网络基础

文章目录一、网络发展1.网络发展史2.局域网和广域网二、网络协议1.协议分层2.OSI七层模型3.TCP/IP五层模型三、网络传输的基本流程1.局域网通信原理2.不同局域网的通信原理3.IP地址与MAC地址一、网络发展1.网络发展史计算机网络的发展经历了多个阶段,从早期的简单通信系统到现代互联网的复杂网络架构。以下是计

[C++ 从入门到精通] 8.构造函数详解、explicit、初始化列表

📢博客主页:https://loewen.blog.csdn📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢本文由丶布布原创,首发于CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览:一.构造函数二.构造函数多参数情况三.函数默认参数四.隐式转换和explicit五.构造函数

OpenCV自学笔记十九:霍夫变换

目录1、霍夫直线变换2、霍夫圆环变换1、霍夫直线变换霍夫直线变换(HoughLineTransform)是一种用于在图像中检测直线的技术。它能够从图像中提取出直线的参数,例如直线的斜率和截距。霍夫直线变换的基本原理是在参数空间中累加直线的交点。对于每个图像中的边缘点,它们代表了可能的直线候选。通过对这些候选直线进行计数

利用前端和后端技术,海豚物流实现高效物流管理系统

随着信息技术的快速发展,前端和后端技术在物流行业中扮演着越来越重要的角色。海豚物流充分利用前后端技术,实现了物流管理的无缝协作,大大提升了运输效率和客户满意度。前端技术在物流管理中扮演着用户界面的角色。通过优化用户界面,我们帮助客户更加便捷地操作和管理物流信息。首先,我们采用响应式设计,确保用户能够在不同设备上获得一致

热文推荐