GIt的备份和恢复

简介:

1、GItlab备份

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

vim /etc/gitlab/gitlab.rb

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

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

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

创建备份目录和授权

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

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

1
2
gitlab-cli reconfigure
gitlab-cli restart

备份:

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

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

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

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

1
2
3
4
5
[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

需要备份的文件有:

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

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

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

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

2、GItlab恢复

恢复流程:

1、停止数据写入任务

1
2
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

2、恢复数据

1
gitlab-rake gitlab:backup:restore BACKUP=1494780002

3、启动服务

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

3、只备份代码

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[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] #




本文转自 kesungang 51CTO博客,原文链接:http://blog.51cto.com/sgk2011/1925939,如需转载请自行联系原作者

相关文章
|
5月前
|
中间件 Java 生物认证
Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份
Web应用&源码泄漏&开源闭源&指纹识别&GIT&SVN&DS&备份
|
缓存 网络协议 开发工具
[oeasy]python0145_版本控制_git_备份还原
[oeasy]python0145_版本控制_git_备份还原
95 0
|
存储 开发工具 git
Git分支误删,如何恢复?
Git分支误删,如何恢复?
5273 0
|
存储 开发工具 git
git stash误使用drop删掉本地保存,再恢复代码一次记录
git stash误使用drop删掉本地保存,再恢复代码一次记录
1083 0
git stash误使用drop删掉本地保存,再恢复代码一次记录
|
缓存 开发工具 git
IDEA 上误操作git的Revert,本地恢复
IDEA 上误操作git的Revert,本地恢复
1070 0
IDEA 上误操作git的Revert,本地恢复
|
存储 开发工具 git
Git 进阶系列 | 8. 用 Reflog 恢复丢失的提交
Git 进阶系列 | 8. 用 Reflog 恢复丢失的提交
304 0
Git 进阶系列 | 8. 用 Reflog 恢复丢失的提交
|
开发工具 git
Git恢复之前版本的两种方法reset、revert(图文详解)
Git恢复之前版本的两种方法reset、revert(图文详解)
584 0
|
开发工具 git
Git删除分支/恢复分支
Git删除分支/恢复分支
455 0
|
开发工具 git
Git 恢复到指定版本
Git 恢复到指定版本
121 0
Git 恢复到指定版本
|
Java 开发工具 git
Google开源git代码仓库备份工具 Hesokuri
对于开发者而言,代码是最重要的数据。因此,我们需要经常地备份这些代码,同时,我们也需要很方便地从不同电脑访问这些源代码。
425 0