天天看點

gerrit代碼簡單備份方案分享

由于前期部署了gerrit代碼稽核系統,開發調整後的線上代碼都放到gerrit上,這就要求我們要保證代碼的安全。是以,對gerrit代碼的備份至關重要!

備份的政策是:

1)先首次将gerrit項目代碼git clone下來,然後後續備份前進行git pull

2)編寫備份腳本,crontab定時執行

3)除了本機備份外,還可以備份到遠端

下面是操作記錄:

比如,備份gerrit上的下列項目代碼

gerrit代碼簡單備份方案分享

檢視各個項目的gerrit代碼下載下傳位址(ssh方式)

gerrit代碼簡單備份方案分享

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

<code>1)首先在本地将gerrit項目代碼下載下傳下來(本地的wangshibo使用者下的公鑰已經放到gerrit上,在wangshibo使用者下git clone)</code>

<code>[root@115r gerrit.bak]</code><code># su - wangshibo</code>

<code>[root@115r gerrit.bak]$ </code><code>pwd</code>

<code>/home/wangshibo/gerrit</code><code>.bak</code>

<code>[root@115r gerrit.bak]$ git clone </code><code>ssh</code><code>:</code><code>//wangshibo</code><code>@103.110.186.130:29418</code><code>/huanqiu_ios</code> <code>&amp;&amp; </code><code>scp</code> <code>-p -P 29418 [email protected]:hooks</code><code>/commit-msg</code> <code>huanqiu_ios/.git</code><code>/hooks/</code>

<code>[root@115r gerrit.bak]$ git clone </code><code>ssh</code><code>:</code><code>//wangshibo</code><code>@103.110.186.130:29418</code><code>/huanqiu_android</code> <code>&amp;&amp; </code><code>scp</code> <code>-p -P 29418 [email protected]:hooks</code><code>/commit-msg</code> <code>fangfull_huanqiu/.git</code><code>/hooks/</code>

<code>[root@115r gerrit.bak]$ git clone </code><code>ssh</code><code>:</code><code>//wangshibo</code><code>@103.110.186.130:29418</code><code>/huanqiu_old_android</code> <code>&amp;&amp; </code><code>scp</code> <code>-p -P 29418 [email protected]:hooks</code><code>/commit-msg</code> <code>huanqiu_old_android/.git</code><code>/hooks/</code>

<code>[root@115r gerrit.bak]$ git clone </code><code>ssh</code><code>:</code><code>//wangshibo</code><code>@103.110.186.130:29418</code><code>/huanqiu_old_ios</code> <code>&amp;&amp; </code><code>scp</code> <code>-p -P 29418 [email protected]:hooks</code><code>/commit-msg</code> <code>huanqiu_old_ios/.git</code><code>/hooks/</code>

<code>[root@115r gerrit.bak]$ git clone </code><code>ssh</code><code>:</code><code>//wangshibo</code><code>@103.110.186.130:29418</code><code>/static-huanqiu</code> <code>&amp;&amp; </code><code>scp</code> <code>-p -P 29418 [email protected]:hooks</code><code>/commit-msg</code> <code>static-huanqiu/.git</code><code>/hooks/</code>

<code>[root@115r gerrit.bak]$ ll</code>

<code>總用量 32</code>

<code>drwxr-xr-x. 5 wangshibo wangshibo 4096 9月 14 13:10 huanqiu_ios</code>

<code>drwxr-xr-x. 5 wangshibo wangshibo 4096 8月 24 09:49 huanqiu_android</code>

<code>drwxr-xr-x. 4 wangshibo wangshibo 4096 8月 24 09:49 huanqiu_old_android</code>

<code>drwxr-xr-x. 4 wangshibo wangshibo 4096 8月 24 09:49 huanqiu_old_ios</code>

<code>drwxr-xr-x. 10 wangshibo wangshibo 4096 8月 29 11:29 static-huanqiu</code>

<code>[root@115r gerrit.bak]$ </code><code>cd</code> <code>huanqiu_old_ios/</code>

<code>[root@115r huanqiu_old_ios]$ git branch -av                     </code><code>//</code><code>檢視發現git分支也已經下載下傳下來了</code>

<code>* master fd4c4f6 90</code>

<code>remotes</code><code>/origin/HEAD</code> <code>-&gt; origin</code><code>/master</code>

<code>remotes</code><code>/origin/dev</code> <code>a5bdc2c 送出客戶resetCookie</code>

<code>remotes</code><code>/origin/huanqiu_old_ios</code> <code>e00aa7e DEL:</code><code>rm</code> <code>readme </code><code>file</code> <code>into fangfull_old_ios</code>

<code>remotes</code><code>/origin/master</code> <code>fd4c4f6 90</code>

<code>[root@115r gerrit.bak]$ </code><code>cat</code> <code>/home/wangshibo/gerrit-bak</code><code>.sh</code>

<code>#!/bin/bash</code>

<code>cd</code> <code>/home/wangshibo/gerrit</code><code>.bak</code><code>/huanqiu_android</code> <code>&amp;&amp; </code><code>/usr/local/bin/git</code> <code>pull</code>

<code>cd</code> <code>/home/wangshibo/gerrit</code><code>.bak</code><code>/huanqiu_ios</code> <code>&amp;&amp; </code><code>/usr/local/bin/git</code> <code>pull</code>

<code>cd</code> <code>/home/wangshibo/gerrit</code><code>.bak</code><code>/huanqiu_old_android</code> <code>&amp;&amp; </code><code>/usr/local/bin/git</code> <code>pull</code>

<code>cd</code> <code>/home/wangshibo/gerrit</code><code>.bak</code><code>/huanqiu_old_ios</code> <code>&amp;&amp; </code><code>/usr/local/bin/git</code> <code>pull</code>

<code>cd</code> <code>/home/wangshibo/gerrit</code><code>.bak</code><code>/static-huanqiu</code> <code>&amp;&amp; </code><code>/usr/local/bin/git</code> <code>pull</code>

<code>然後</code><code>crontab</code><code>計劃任務制定,每小時備份一次</code>

<code>[root@Zabbix-server gerrit.bak]$ </code><code>crontab</code> <code>-l</code>

<code>10 * * * * </code><code>/bin/bash</code> <code>-x </code><code>/home/wangshibo/gerrit-bak</code><code>.sh &gt; </code><code>/dev/null</code> <code>2&gt;&amp;1</code>

<code>2)第一步隻是在本地備份,可以将本地備份的git做副本放到遠端機器上</code>

<code>下面是遠端機器上的操作(遠端機器已和本地機器做了</code><code>ssh</code><code>信任關系)(192.168.1.15是本地機器)</code>

<code>[root@bastion-IDC ~]</code><code># cd /home/backup/</code>

<code>[root@bastion-IDC backup]</code><code># ls</code>

<code>192.168.1.15-gerrit gerritbak.sh</code>

<code>[root@bastion-IDC backup]</code><code># cat gerritbak.sh</code>

<code>#/bin/bash</code>

<code>/usr/bin/rsync</code> <code>-e </code><code>"ssh -p22"</code> <code>-avpgolr [email protected]:</code><code>/home/wangshibo/gerrit</code><code>.bak </code><code>/home/backup/192</code><code>.168.1.15-gerrit/`</code><code>date</code> <code>+gerrit-%Y-%m-%d`/</code>

<code>[root@bastion-IDC backup]</code><code># cd 192.168.1.15-gerrit/</code>

<code>[root@bastion-IDC 192.168.1.15-gerrit]</code><code># ls</code>

<code>gerrit-2016-9-17</code>

<code>[root@bastion-IDC 192.168.1.15-gerrit]</code><code># cd gerrit-2016-9-17/</code>

<code>[root@bastion-IDC gerrit-2016-9-17]</code><code># ls</code>

<code>gerrit.bak</code>

<code>[root@bastion-IDC gerrit-2016-9-17]</code><code># ll gerrit.bak</code>

<code>total 32</code>

<code>drwxr-xr-x. 5 512 512 4096 Aug 24 09:49 huanqiu_android</code>

<code>drwxr-xr-x. 4 512 512 4096 Aug 24 09:49 huanqiu_ios</code>

<code>drwxr-xr-x. 4 512 512 4096 Aug 24 09:49 huanqiu_old_android</code>

<code>drwxr-xr-x. 4 512 512 4096 Aug 24 09:49 huanqiu_old_ios</code>

<code>drwxr-xr-x. 10 512 512 4096 Aug 29 11:29 static-huanqiu</code>

<code>[root@bastion-IDC 192.168.1.15-gerrit]</code><code># cd huanqiu_old_ios/</code>

<code>[wangshibo@bastion-IDC huanqiu_old_ios]$ git branch -av                    </code><code>//</code><code>檢視,說明git分支也已經備份下來了</code>

<code>制定計劃任務,每30分鐘備份過來一次</code>

<code>[root@bastion-IDC backup]</code><code># crontab -l</code>

<code>*</code><code>/30</code> <code>* * * * </code><code>/bin/bash</code> <code>-x </code><code>/home/backup/gerritbak</code><code>.sh &gt; </code><code>/dev/null</code> <code>2&gt;&amp;1</code>

***************當你發現自己的才華撐不起野心時,就請安靜下來學習吧***************

本文轉自散盡浮華部落格園部落格,原文連結:http://www.cnblogs.com/kevingrace/p/5881288.html,如需轉載請自行聯系原作者