GitLab中的备份

本文介绍了如何在GitLab中进行数据备份,包括备份重要配置文件如gitlab.rb和gitlab-secrets.json,以及如何调整备份路径、权限和保留时间。通过修改gitlab.rb配置文件,设置备份目录、权限和保留时间,然后执行gitlab-ctl reconfigure使配置生效。此外,还详细讲解了利用crontab创建定时任务来定期执行备份,确保数据安全。
摘要由CSDN通过智能技术生成

1.GitLab中的备份

  1. Gitlab中提供的备份机制,不会备份配置文件,所以需要手动备份配置目录和相关文件。备份指令之所以不备份配置文件,是因为数据库中包含一些加密的信息。加密信息的密钥存放在备份目录下,如果放在一个地方,会违背信息加密的安全目的。
  2. 一般来说,对于使用rpm包安装的GitLab,所有的默认配置都在/etc/gitlab目录下,其中最重要的是/etc/gitlab/gitlab.rb和/etc/gitlab/gitlab-secrets.json这两个文件。gitlab.rb是主配置文件,包含外部URL、仓库目录、备份目录等重要配置。gitlab-secrets.json包含数据库的加密密钥、双重认证的密钥、GitLab CI的密钥等加密信息

2. GitLab如何实现备份

  1. 备份/etc/gitlab/gitlab.rb
  • backup_path表示备份的目录,默认是/var/opt/gitlab/backups
  • backup_archive_permissions是GitLab备份生成的tar格式的压缩包,默认git:git用户和群组,默认文件权限是0600,可以防止其他系统用户获取GitLab的数据。如果要修改备份包的权限,可以修改该参数,比如,改成0644即具有可读的权限。
  • backup_keep_time表示备份的保留时间。如果备份压缩包太多,会导致磁盘空间一直被占用,所以可以给备份包设置最长的保留时间,每次备份任务时会把超过保留时间的旧备份包删除,备份的保留时间默认是604800s,即7天。具体设置如下:
vim /etc/gitlab/gitlab.rb

编辑gitlab主配置文件,增加如下配置信息,保存并退出。

gitlab_rails['backup_path'] = "/mnt/gitlab/backup"
gitlab_rails['backup_archive_permissions'] = 0644
gitlab_rails['backup_keep_time'] = 604800

在这里插入图片描述
2. 重新加载配置信息,使其生效

gitlab-ctl reconfigure
  1. 执行备份指令
gitlab-rake gitlab:backup:create

在这里插入图片描述
4. 查看备份目录下新的文件
备份文件采用tar包格式,文件命名规则是EPOCH_YYYY_MM_DD_GitLab 版本号 _gitlab_backup.tar,可以看出此命名规则会带上时间戳和GitLab的版本号信息。

ls -al /mnt/gitlab/backup/

在这里插入图片描述

3. 定时备份

定时备份的实现是使用Linux系统中的crontab任务进行的,具体实现如下:

  1. 通过命令创建crontab任务。每天凌晨2点执行一次备份任务(根据自己需求设定定时任务的执行时间和次数)。
# 执行如下命令
crontab -e

新建定时任务

# 新建定时任务
0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

查看定时任务列表

crontab -l

在这里插入图片描述
至此,已完成Gitlab的备份工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值