Gitlab數據備份及數據恢復重置gitlab管理密碼方法

1、建立備份文件
首先咱們得把老服務器上的Gitlab總體備份,使用Gitlab一鍵安裝包安裝Gitlab很是簡單, 一樣的備份恢復與遷移也很是簡單. 使用一條命令便可建立完整的Gitlab備份。nginx

gitlab徹底備份命令:git

gitlab-rake gitlab:backup:createshell

使用以上命令會在/var/opt/gitlab/backups目錄下建立一個名稱相似爲1545200330_2018_12_19_11.3.13_gitlab_backup.tar的壓縮包, 這個壓縮包就是Gitlab整個的完整部分, 其中中間部分的是備份建立的2018_12_19日期
/etc/gitlab/gitlab.rb 配置文件須備份
/var/opt/gitlab/nginx/conf nginx配置文件vim

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

執行完後,/var/opt/gitlab/backups目錄建立一個名稱相似爲1545201028_2018_12_19_11.3.13_gitlab_backup.tar的壓縮包
Gitlab數據備份及數據恢復重置gitlab管理密碼方法服務器

2、更改Gitlab備份目錄
能夠經過/etc/gitlab/gitlab.rb配置文件來修改默認存放備份文件的目錄,配置文件中229行爲系統默認備份路徑,咱們只須要在下面添加一行,或者直接修改默認配置,去掉註釋便可。dom

Gitlab數據備份及數據恢復重置gitlab管理密碼方法
作完這步之後須要從新加載配置(至關於重啓gitlab)命令以下:ide

gitlab-ctl reconfigure
以後咱們能夠再進行一次全量備份,能夠看到備份的目錄已經被咱們更改了。gitlab

gitlab-rake gitlab:backup:createui

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

3、 Gitlab自動備份
在crontab文件裏面,每一行表明一項任務,每行的每一個字段表明一項設置,它的格式共分爲六個字段,前五段是時間設定段,第六段是要執行的命令段,每一個字段之間用空格分割,沒用的段用*代替,格式以下:命令行

          • 命令
            m h dom mon dow command
            m: 表示分鐘,能夠是從0到59之間的任何整數。
            h:表示小時,能夠是從0到23之間的任何整數。
            dom:表示日期,能夠是從1到31之間的任何整數。
            mon:表示月份,能夠是從1到12之間的任何整數。
            week:表示星期幾,能夠是從0到7之間的任何整數,這裏的0或7表明星期日。
            command:要執行的命令,能夠是系統命令,也能夠是本身編寫的腳本文件(如shell文件)。
            實現天天凌晨2點進行一次自動備份:經過crontab使用備份命令實現,需重啓cron服務

#輸入命令crontab -e
crontab -e
#輸入相應的任務
0 2 * /opt/gitlab/bin/gitlab-rake gitlab:backup:create CRON=1

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

編輯完保存退出,也能夠直接編輯 vim /etc/crontab 這個文件,效果是同樣的。 這時候須要重啓一下crontab服務而且,設置爲開機自啓。

#重啓定時任務服務
systemctl restart crond.service
#實現開機自啓動
systemctl enable crond.service
4、 設置備份過時時間
設置只保存最近7天的備份,編輯 /etc/gitlab/gitlab.rb 配置文件,找到gitlab_rails[‘backup_keep_time’],設置爲你想要設置的值,而後保存。這個地方的604800是以秒爲單位。一樣修改完之後從新載入配置。

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

5、從備份文件中恢復gitlab
第一步,將備份文件權限修改成777,否則可能恢復的時候會出現權限不夠,不能解壓的問題
chmod 777 1545201028_2018_12_19_11.3.13_gitlab_backup.tar
第二步,執行命令中止相關數據鏈接服務
gitlab-ctl stop unicorn
gitlab-ctl stop sidekiq

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

第三步,執行命令從備份文件中恢復Gitlab
Gitlab的恢復操做會先將當前全部的數據清空,而後再根據備份數據進行恢復

#gitlab-rake gitlab:backup:restore BACKUP=備份文件編號
#例如咱們的備份文件的編號是1545202224_2018_12_19_11.3.13,所以執行下面的命令便可恢復
gitlab-rake gitlab:backup:restore BACKUP=1545202224_2018_12_19_11.3.13

敲完命令後,出現第一個交互頁面,

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

輸入「yes」繼續。 這時已經開始恢復了。
出現第二個交互頁面,繼續輸入「yes」

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

第四步,啓動Gitlab
gitlab-ctl start

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

這時已經把數據恢復完成了,咱們能夠訪問gitlab地址http://192.168.10.178/dashboard/projects

Gitlab數據備份及數據恢復重置gitlab管理密碼方法

恢復已完成~

GitLab重置用戶名密碼

打開終端,訪問:

gitlab-rails console production

輸入:

user = User.where(id: 1).first
user.password=123456
user.password_confirmation = ‘123456’
user.save! #注意加上 「!」

而後退出命令行便可。

quit

相關文章
相關標籤/搜索