1、GItlab备份

Gitlab默认的备份路径都是在配置文件中指定的,所以我们可以去配置文件中查看

vim /etc/gitlab/gitlab.rb

# gitlab_rails['manage_backup_path'] = true
# gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
#在配置文件中我们需要注意这两条,定义备份位置

我们需要修改配置如下,激活

gitlab_rails['backup_keep_time'] = 604800 #这个是秒,7天的时间
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"

创建备份目录和授权

 mkdir -p /var/opt/gitlab/backups
 chown -R git.git /var/opt/gitlab/backups

重新加载配置,让配置生效

gitlab-cli reconfigure
gitlab-cli restart

备份:

gitlab的备份非常简单,就是一条命令

 /usr/bin/gitlab-rake gitlab:backup:create

执行完上面的备份命令后,会在备份目录下面生成一个类似这样的文件1494780002_gitlab_backup.tar

这个压缩包就是Gitlab整个的完整部分, 其中开头的1494780002是备份创建的日期,可以通过date命令来查看这个uninx时间戳

[root@linux-node1 app1]# ll /var/opt/gitlab/backups/
total 112
-rw------- 1 git git 112640 May 15 00:40 1494780002_gitlab_backup.tar
[root@linux-node1 app1]# date -d @1494780002
Mon May 15 00:40:02 CST 2017

需要备份的文件有:

/etc/gitlab/gitlab.rb 配置文件须备份 
/var/opt/gitlab/nginx/conf nginx配置文件 
/etc/postfix/main.cfpostfix 邮件配置备份

系统自动备份,设置定时任务

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

建议,本地保留7天,异地永久保存

2、GItlab恢复

恢复流程:

1、停止数据写入任务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

2、恢复数据

gitlab-rake gitlab:backup:restore BACKUP=1494780002

3、启动服务

gitlab-ctl restart
或者启动上面关闭的那两个服务

3、只备份代码

如果只备份代码可以在这个目录下面去备份对应项目的代码,用户的关系不能备份走

[root@linux-node1 app1]# cd /var/opt/gitlab/
[root@linux-node1 gitlab]# ls
backups       gitlab-ci     gitlab-workhorse  postgresql
bootstrapped  gitlab-rails  logrotate         redis
git-data      gitlab-shell  nginx             trusted-certs-directory-hash
[root@linux-node1 gitlab]# cd git-data/
[root@linux-node1 git-data]# ls
repositories
[root@linux-node1 git-data]# cd repositories/
[root@linux-node1 repositories]# ll
total 0
drwxrwx--- 2 git git  6 May  7 14:09 dev1
drwxrwx--- 2 git git  6 May  7 15:12 dev2
drwxrwx--- 4 git git 41 May 14 21:19 Group1
drwxrwx--- 2 git git  6 May 14 21:12 GYH
drwxrwx--- 2 git git  6 May  7 15:12 pm
drwxrwx--- 2 git git  6 May  7 14:05 proje1
drwxrwx--- 4 git git 43 May  7 14:03 root
drwxrwx--- 2 git git  6 May 14 21:11 YH01
drwxrwx--- 2 git git  6 May 14 21:11 YH02
[root@linux-node1 repositories]#