GIt的备份和恢复

一、GItlab备份node

Gitlab默认的备份路径都是在配置文件中指定的,因此咱们能够去配置文件中查看
linux

vim /etc/gitlab/gitlab.rb
nginx

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

咱们须要修改配置以下,激活git

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

建立备份目录和受权
redis

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

从新加载配置,让配置生效sql

gitlab-cli reconfigure
gitlab-cli restart

备份:shell

gitlab的备份很是简单,就是一条命令bootstrap

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

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

这个压缩包就是Gitlab整个的完整部分, 其中开头的1494780002是备份建立的日期,能够经过date命令来查看这个uninx时间戳bash

[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天,异地永久保存

二、GItlab恢复

恢复流程:

一、中止数据写入任务

gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

二、恢复数据

gitlab-rake gitlab:backup:restore BACKUP=1494780002

三、启动服务

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

三、只备份代码

若是只备份代码能够在这个目录下面去备份对应项目的代码,用户的关系不能备份走

[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]#
相关文章
相关标签/搜索