天天看點

GIt的備份和恢複

1、GItlab備份

Gitlab預設的備份路徑都是在配置檔案中指定的,是以我們可以去配置檔案中檢視

vim /etc/gitlab/gitlab.rb

1

2

3

<code># gitlab_rails['manage_backup_path'] = true</code>

<code># gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"</code>

<code>#在配置檔案中我們需要注意這兩條,定義備份位置</code>

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

<code>gitlab_rails[</code><code>'backup_keep_time'</code><code>] = 604800 </code><code>#這個是秒,7天的時間</code>

<code>gitlab_rails[</code><code>'backup_path'</code><code>] = </code><code>"/var/opt/gitlab/backups"</code>

建立備份目錄和授權

<code> </code><code>mkdir</code> <code>-p </code><code>/var/opt/gitlab/backups</code>

<code> </code><code>chown</code> <code>-R git.git </code><code>/var/opt/gitlab/backups</code>

重新加載配置,讓配置生效

<code>gitlab-cli reconfigure</code>

<code>gitlab-cli restart</code>

備份:

gitlab的備份非常簡單,就是一條指令

<code> </code><code>/usr/bin/gitlab-rake</code> <code>gitlab:backup:create</code>

執行完上面的備份指令後,會在備份目錄下面生成一個類似這樣的檔案1494780002_gitlab_backup.tar

這個壓縮包就是Gitlab整個的完整部分, 其中開頭的1494780002是備份建立的日期,可以通過date指令來檢視這個uninx時間戳

4

5

<code>[root@linux-node1 app1]</code><code># ll /var/opt/gitlab/backups/</code>

<code>total 112</code>

<code>-rw------- 1 git git 112640 May 15 00:40 1494780002_gitlab_backup.</code><code>tar</code>

<code>[root@linux-node1 app1]</code><code># date -d @1494780002</code>

<code>Mon May 15 00:40:02 CST 2017</code>

需要備份的檔案有:

<code>/etc/gitlab/gitlab</code><code>.rb 配置檔案須備份 </code>

<code>/var/opt/gitlab/nginx/conf</code> <code>nginx配置檔案 </code>

<code>/etc/postfix/main</code><code>.cfpostfix 郵件配置備份</code>

系統自動備份,設定定時任務

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

建議,本地保留7天,異地永久儲存

2、GItlab恢複

恢複流程:

1、停止資料寫入任務

<code>gitlab-ctl stop unicorn</code>

<code>gitlab-ctl stop sidekiq</code>

2、恢複資料

<code>gitlab-rake gitlab:backup:restore BACKUP=1494780002</code>

3、啟動服務

<code>gitlab-ctl restart</code>

<code>或者啟動上面關閉的那兩個服務</code>

3、隻備份代碼

如果隻備份代碼可以在這個目錄下面去備份對應項目的代碼,使用者的關系不能備份走

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<code>[root@linux-node1 app1]</code><code># cd /var/opt/gitlab/</code>

<code>[root@linux-node1 gitlab]</code><code># ls</code>

<code>backups       gitlab-ci     gitlab-workhorse  postgresql</code>

<code>bootstrapped  gitlab-rails  logrotate         redis</code>

<code>git-data      gitlab-shell  nginx             trusted-certs-directory-</code><code>hash</code>

<code>[root@linux-node1 gitlab]</code><code># cd git-data/</code>

<code>[root@linux-node1 git-data]</code><code># ls</code>

<code>repositories</code>

<code>[root@linux-node1 git-data]</code><code># cd repositories/</code>

<code>[root@linux-node1 repositories]</code><code># ll</code>

<code>total 0</code>

<code>drwxrwx--- 2 git git  6 May  7 14:09 dev1</code>

<code>drwxrwx--- 2 git git  6 May  7 15:12 dev2</code>

<code>drwxrwx--- 4 git git 41 May 14 21:19 Group1</code>

<code>drwxrwx--- 2 git git  6 May 14 21:12 GYH</code>

<code>drwxrwx--- 2 git git  6 May  7 15:12 pm</code>

<code>drwxrwx--- 2 git git  6 May  7 14:05 proje1</code>

<code>drwxrwx--- 4 git git 43 May  7 14:03 root</code>

<code>drwxrwx--- 2 git git  6 May 14 21:11 YH01</code>

<code>drwxrwx--- 2 git git  6 May 14 21:11 YH02</code>

<code>[root@linux-node1 repositories]</code><code>#</code>

本文轉自 kesungang 51CTO部落格,原文連結:http://blog.51cto.com/sgk2011/1925939,如需轉載請自行聯系原作者

繼續閱讀