自建代码托管平台 Gitlab 的使用说明(三)备份和恢复

备份

GitLab作为公司项目代码的版本管理系统,数据非常重要,必须做好备份。

修改备份目录

GitLab备份的默认目录是 /var/opt/gitlab/backups ,如果想改备份目录,可修改/etc/gitlab/gitlab.rb:

 修改配置后,记得:

gitlab-ctl reconfigure

重新加载配置 gitlab-ctl 。

备份命令

gitlab-rake gitlab:backup:create

该命令会在备份目录(默认:/var/opt/gitlab/backups/)下创建一个tar压缩包xxxxxxxx_gitlab_backup.tar,其中开头的xxxxxx是备份创建的时间戳,这个压缩包包括GitLab整个的完整部分

自动备份

在crontab文件里面,每一行代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段,每个字段之间用空格分割,没用的段用*代替,格式如下:

m h dom mon dow user command

其中:

  • m: 表示分钟,可以是从0到59之间的任何整数。
  • h:表示小时,可以是从0到23之间的任何整数。
  • dom:表示日期,可以是从1到31之间的任何整数。
  • mon:表示月份,可以是从1到12之间的任何整数。
  • dow:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
  • user : 表示执行的用户。
  • command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件(如shell文件)。

实现每天凌晨2点进行一次自动备份:通过crontab使用备份命令实现,需重启cron服务

方法1、在命令行输入: crontab -e

然后添加相应的任务

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

wq存盘退出。

方法2、直接编辑/etc/crontab 文件,即vi /etc/crontab,然后添加相应的任务

# 编辑 /etc/crotab

sudo vi /etc/crontab

然后再编辑框内输入相应的任务

# 添加定时任务,每天凌晨两点,执行gitlab备份

0 2 * * * root /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

 

备份保留7天

可设置只保留最近7天的备份,编辑配置文件 /etc/gitlab/gitlab.rb

# 数值单位:秒

gitlab_rails['backup_keep_time'] = 604800

重新加载gitlab配置文件 : gitlab-ctl reconfigure

恢复

备份文件:

停止 unicorn 和 sidekiq ,保证数据库没有新的连接,不会有写数据情况。

# 停止相关数据连接服务

gitlab-ctl stop unicorn

gitlab-ctl stop sidekiq

# 指定恢复文件,会自动去备份目录找。确保备份目录中有这个文件。

# 指定文件名的格式类似:1590153351_2020_05_22_12.10.6 , 程序会自动在文件名后补上:“_gitlab_backup.tar”

# 一定要按照这样的格式指定,否则会程序 The backup file does not exist ! 的错误

gitlab-rake gitlab:backup:restore BACKUP=1590153351_2020_05_22_12.10.6

# 启动Gitlab

gitlab-ctl start

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值