当前位置: 首页 > article >正文

[笔记] 极狐GitLab实例 : 手动备份步骤总结

官方备份文档 : 备份和恢复极狐GitLab


一. 要求

为了能够进行备份和恢复,请确保您系统已安装 Rsync。 如果您安装了极狐GitLab:

  • 如果您使用 Omnibus 软件包,则无需额外操作。
  • 如果您使用源代码安装,您需要确定是否安装了 rsync。例如:
# Debian/Ubuntu
sudo apt-get install rsync

# RHEL/CentOS
sudo yum install rsync

二. 备份时间戳

备份归档保存在 backup_path 中,该路径在 config/gitlab.yml 文件中指定。文件名是 [TIMESTAMP]_gitlab_backup.tar, 其中 TIMESTAMP 标识每个备份的创建时间和极狐GitLab 的版本。恢复极狐GitLab 需要时间戳,也可以使用多个备份。

例如,如果备份名称是 1493107454_2018_04_25_10.6.4-ce_gitlab_backup.tar,时间戳为 1493107454_2018_04_25_10.6.4-ce


三. 备份极狐GitLab

极狐GitLab 提供了一个命令行界面来备份您的整个实例包含:

  • 数据库
  • 附件
  • Git 仓库数据
  • CI/CD 作业输出日志
  • CI/CD 作业产物
  • LFS 对象
  • Terraform 状态(引入于极狐GitLab 14.7)
  • 容器镜像库镜像
  • 极狐GitLab 页面内容
  • 包(引入于极狐GitLab 14.7)
  • 代码片段
  • 群组 Wiki

备份不包括

  • Mattermost 数据
  • Redis(和 Sidekiq 作业)

命令

  • 极狐GitLab 12.2 及更高版本:
sudo gitlab-backup create
  • 极狐GitLab 12.1 及更早版本:
gitlab-rake gitlab:backup:create

如果您使用源代码安装极狐GitLab,请使用以下命令:

sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production

如果您在 Docker 容器中运行极狐GitLab,请基于您安装的极狐GitLab 版本从主机运行备份:

  • 极狐GitLab 12.2 及更高版本:
docker exec -t <container name> gitlab-backup create
  • 极狐GitLab 12.1 及更早版本:
docker exec -t <container name> gitlab-rake gitlab:backup:create

示例输出:
在这里插入图片描述
在这里插入图片描述

检查备份文件

ls -l /var/opt/gitlab/backups/

在这里插入图片描述


四. 完整命令

## 备份
sudo gitlab-backup create

## 检查文件
ls -l /var/opt/gitlab/backups/

# 创建目标目录
mkdir -p /home/mada/gitlab-backups

# 复制所有备份文件
sudo cp /var/opt/gitlab/backups/*.tar /home/mada/gitlab-backups/

# 或者只复制特定的备份文件
sudo cp /var/opt/gitlab/backups/1737767819_2025_01_25_17.7.0-jh_gitlab_backup.tar /home/mada/gitlab-backups/

# 复制 gitlab.rb 和 gitlab-secrets.json 文件
sudo cp /etc/gitlab/gitlab.rb /home/mada/gitlab-backups/
sudo cp /etc/gitlab/gitlab-secrets.json /home/mada/gitlab-backups/

# 验证文件是否已成功复制
ls -l /home/mada/gitlab-backups/

# 调整文件权限(可选)
sudo chown -R mada:mada /home/mada/gitlab-backups/
sudo chmod -R 600 /home/mada/gitlab-backups/*

http://www.kler.cn/a/518758.html

相关文章:

  • Linux 权限管理
  • MySQL数据库笔记——版本号机制和CAS(Compare And Swap)
  • 【机器学习】深入探索SVM:支持向量机的原理与应用
  • 《探秘:人工智能如何为鸿蒙Next元宇宙网络传输与延迟问题破局》
  • 备赛蓝桥杯之第十五届职业院校组省赛第三题:产品360度展示
  • 在Rust应用中访问.ini格式的配置文件
  • Windows11离线安装wsl2(适用于 Linux 的 Windows 子系统)和Ubuntu
  • Android Toast 系统切换多语言显示
  • 当AI风暴来袭:中美科技商业版图的迥异走向
  • MyBatis 写法
  • 力扣算法题——1089.复写零【系统讲解】
  • 回归测试中的自动化与手动测试平衡
  • 大数运算之C语言实现
  • STM32项目分享:智能语音分类垃圾桶
  • 基于Flask的微博话题舆情分析可视化系统的设计与实现
  • Java Swing 基础组件详解 [论文投稿-第四届智能系统、通信与计算机网络]
  • 数据结构与算法之堆: LeetCode 208. 实现 Trie (前缀树) (Ts版)
  • Java面试题2025-Mysql
  • Pandas与Numpy的数据分析进阶题
  • 免费GPU算力,不花钱部署DeepSeek-R1
  • 【由浅入深认识Maven】第2部分 maven依赖管理与仓库机制
  • 基于大语言模型构建本地个人AI助理
  • WebRtc06: 音视频数据采集
  • ICSE‘25 LLM Assistance for Memory Safety
  • 【面试】【程序员基本知识】计算机网络,设计模式,正则,安全
  • 一文简单回顾复习Java基础概念