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,如需轉載請自行聯系原作者