ice world

          There is nothing too difficult if you put your heart into it.
          posts - 104, comments - 103, trackbacks - 0, articles - 0

          SVN(Subversion)自動同步備份配置

          Posted on 2014-01-23 11:08 IceWee 閱讀(651) 評論(0)  編輯  收藏 所屬分類: Others
          源機器:192.168.1.1
          備份機器:192.168.1.2

          前提條件:
          1、兩臺機器的網絡是連通的
          2、兩臺機器必須同時安裝了SVN服務器

          假設:
          源機器上需要同步的庫名為autoSync,訪問地址為:svn://192.168.1.1/autoSync,對其具備讀寫權限的賬戶:sync/sync

          備份機器配置:
          1、創建與源機器庫名相同的空庫
          # 假設備份機器的SVN根目錄建立在 /home/backup/svn/repository下
          svnadmin create /home/backup/svn/repository/autoSync

          2、配置備份機器上的autoSync
          分別修改conf下的svnserve.conf、passwd、authz,根據實際情況配置,假設創建了用戶sync/sync,對庫autoSync具備讀寫權限,配置方法略,配置完成后啟動SVN服務

          3、創建并修改pre-revprop-change文件
          cd /home/backup/svn/repository/autoSync/hooks
          cp pre
          -revprop-change.tmpl pre-revprop-change
          vi pre-revprop-change

          將文件末尾的“exit 1”改為“exit 0”即可,保存退出
          REPOS="$1"
          REV
          ="$2"
          USER
          ="$3"
          PROPNAME
          ="$4"
          ACTION
          ="$5"

          if
          [ "$ACTION" = "M" -a "$PROPNAME" = "svn:log" ]; then exit 0; fi

          echo
          "Changing revision properties other than svn:log is prohibited" >&2
          exit
          0

          增加可執行權限
          chmod 755 pre-revprop-change

          4、初始化
          命令:
          svnsync init --username 用戶名 --password 密碼 備份機器庫URL 源機器庫URL

          說明:
          用戶名和密碼是對源機器SVN庫具備讀寫權限的SVN用戶

          示例:
          svnsync init --username sync --password sync svn://192.168.1.2/autoSync svn://192.168.1.1/autoSync

          5、首次同步
          首次同步即為一次全備份過程,在此期間請停止客戶端段源機器哦一切操作(提交代碼等)
          命令:
          svnsync sync 備份機器庫URL
          示例:
          svnsync sync svn://192.168.1.2/autoSync

          源機器配置
          6、增量自動同步配置
          創建并修改post-commit文件
          # 假設源機器的SVN根目錄建立在 /home/svn/repository下
          cd /home/svn/repository/autoSync/hooks
          cp post
          -commit.tmpl post-commit
          vi post
          -commit

          在文件末尾追加:svnsync sync --non-interactive 備份機器庫URL --username 用戶名 --password 密碼

          說明:
          用戶名和密碼是對備份機器SVN庫具備讀寫權限的SVN用戶

          示例:
          svnsync sync --non-interactive svn://192.168.1.2/autoSync --username sync --password sync

          7、術語
          配置完成,今后客戶端再向SVN(192.168.1.1)提交文件時,會自動觸發源機器(192.168.1.1)向備份機器(192.168.1.2)提交更新

          8、版本庫UUID一致性
          首先查看源機器庫的UUID,假設得到的是:fcdcbee9-6be3-4575-8d4a-681ec15ad8e0
          svnlook uuid svn://192.168.1.1/autoSync

          更新備份機器庫的UUID為源機器庫的UUID
          svnadmin setuuid svn://192.168.1.2/autoSync fcdcbee9-6be3-4575-8d4a-681ec15ad8e0




          主站蜘蛛池模板: 北宁市| 遵化市| 齐齐哈尔市| 澎湖县| 太康县| 象州县| 邻水| 名山县| 桂林市| 凭祥市| 都昌县| 定日县| 屯昌县| 芜湖县| 海晏县| 呼和浩特市| 寿光市| 衡水市| 灵川县| 休宁县| 永寿县| 聊城市| 杂多县| 浦县| 平山县| 龙州县| 武威市| 团风县| 普洱| 库车县| 高淳县| 泰安市| 汨罗市| 汝南县| 资兴市| 惠东县| 潍坊市| 枝江市| 孝昌县| 佳木斯市| 宜章县|