遠(yuǎn)程鏡像與備份SVN服務(wù)器的方法小結(jié)第1/2頁
更新時(shí)間:2009年01月01日 15:25:19 作者:
此文講述SVN如何鏡像服務(wù)器,注意是單向鏡像。眾所周知,SVN有自已的鏡像命令svnsync(svn1.4以及以上版本特性),但是部署與維護(hù)確是繁瑣至極,令人望而卻步。

我們來看一個(gè)簡(jiǎn)單的svnsync例子:
主SVN服務(wù)器: http://mastersvn/project1
svnsync鏡像SVN服務(wù)器上的部署:http://backupsvn/project1
第一步:建立倉庫
cd /home/svn
svnadmin create –fs-type fsfs /home/svn/project1
chmod 777 –R project1
第二步:鏡像初始化
svnsync init http://backupsvn/project1 http://mastersvn/project1
第三步:更改配置文件
cd /home/svn/project1/hooks
cp pre-revprop-change.tmpl pre-revprop-change
vi pre-revprop-change
注銷所有語句,在語句前加入#即可,退出保存
第四步:同步
svnsync sync http://backupsvn/project1 --username username --password password
已提交版本 9。
復(fù)制版本 9 的屬性。
已提交版本 10。
復(fù)制版本 10 的屬性
……………
但是在實(shí)際運(yùn)用中,經(jīng)常會(huì)發(fā)生SVN庫被lock的情況
svnsync: Couldn't get lock on destination repos after 10 attempts
這不得不讓我們感覺頭痛地手動(dòng)使用改命令解鎖
svn propdel svn:sync-lock --revprop -r0 http://backupsvn/project1
寫到這里,大家不由對(duì)svnsync有了個(gè)初步的認(rèn)識(shí)了吧,就一個(gè)字,煩!??!而且同步速度很慢?。。?
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
接下來是此文的重點(diǎn)部分:
SVN新的鏡像備份方案:ssh + rsync + crontab(任務(wù)計(jì)劃))
什么是SSH?
SSH 是更靈活、更安全的 telnet 和 rlogin 替代品。它在開發(fā)項(xiàng)目中得到廣泛使用,以提供訪問控制和安全的數(shù)據(jù)傳輸。
什么是rysnc?
rsync是類unix系統(tǒng)下的數(shù)據(jù)鏡像備份工具,從軟件的命名上就可以看出來了——remote sync。它的特性如下:
可以鏡像保存整個(gè)目錄樹和文件系統(tǒng)。
可以很容易做到保持原來文件的權(quán)限、時(shí)間、軟硬鏈接等等。
無須特殊權(quán)限即可安裝。
優(yōu)化的流程,文件傳輸效率高。
可以使用rcp、ssh等方式來傳輸文件,當(dāng)然也可以通過直接的socket連接。
支持匿名傳輸,以方便進(jìn)行網(wǎng)站鏡象。
什么是crontab?
Crontab是Linux操作系統(tǒng)下的一個(gè)命令,可以用來根據(jù)時(shí)間、日期、月份、星期的組合來調(diào)度對(duì)重復(fù)任務(wù)的執(zhí)行的守護(hù)進(jìn)程。(類似windows下的任務(wù)計(jì)劃)
方案拓?fù)鋱D:(請(qǐng)看附件)
主SVN服務(wù)器環(huán)境:
SVN倉庫根目錄: /home/svn (project1,project2,project3三個(gè)倉庫)
SVN服務(wù)器IP: 192.168.100.80
鏡像SVN服務(wù)器環(huán)境:
SVN倉庫根目錄:/home/svn (無倉庫,無需建立,鏡像時(shí)會(huì)直接復(fù)制過來并保持文件屬性)
SVN服務(wù)器IP: 192.168.100.81
#主SVN服務(wù)器安裝部分:
(1)
SVN安裝部分(略)
(2)
安裝rsync部分
rpm -qa | grep rsync (所有系統(tǒng)是否有安裝過rsync)
rpm -e rsyncxxx (刪除以前安裝過的rsync)
wget http://samba.anu.edu.au/ftp/rsync/rsync-3.0.4.tar.gz (下載rsync源碼安裝包)
tar zxvf rsync-3.0.4.tar.gz (解壓)
cd rsync-3.0.4
./install.sh (安裝)
接下來我們就可以輸入rsync --version命令來測(cè)試下是否安裝成功了。
rsync
version 3.0.3
protocol version 30
Copyright (C) 1996-2008 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
append, ACLs, xattrs, iconv, no symtimes
rsync comes with ABSOLUTELY NO WARRANTY.
This is free software, and you
are welcome to redistribute it under certain conditions.
See the GNU
General Public Licence for details.
(3) 開啟rsync服務(wù)器端
/usr/local/bin/rsync --daemon (開啟rsync服務(wù))
vi /etc/rc.d/rc.local
在末尾加入/usr/local/bin/rsync --daemon (目的是讓服務(wù)器每次重啟后都能自動(dòng)運(yùn)行此進(jìn)程)
#鏡像SVN服務(wù)器安裝部分:
(1)SVN安裝部分(略)
(2)安裝rsync部分
rpm -qa | grep rsync (所有系統(tǒng)是否有安裝過rsync)
rpm -e rsyncxxx (刪除以前安裝過的rsync)
wget http://samba.anu.edu.au/ftp/rsync/rsync-3.0.4.tar.gz (下載rsync源碼安裝包)
tar zxvf rsync-3.0.4.tar.gz (解壓)
cd rsync-3.0.4
./install.sh (安裝)
接下來我們就可以輸入rsync --version命令來測(cè)試下是否安裝成功了。
接下來我們的配置就完成了,讓我們用命里那個(gè)測(cè)試下。
同步命令:
rsync -vzrtopgu --progress --delete root@192.168.100.80:/home/svn /home/
輸入用戶名root
輸入root的密碼。
65309 100%
224.57kB/s
0:00:00 (xfer#507, to-check=2187/23106)
svn/project1/db/revs/202
29655 100%
99.86kB/s
0:00:00 (xfer#508, to-check=2186/23106)
svn/project1/db/revs/203
7242 100%
23.19kB/s
0:00:00 (xfer#509, to-check=2185/23106)
sent 15928 bytes
received 521860019 bytes
4404016.43 bytes/sec
total size is 12240235825
speedup is 23.45
傳輸完成,這次鏡像過程就結(jié)束了。
您可能感興趣的文章:
- 詳解Linux運(yùn)維CentOS系統(tǒng)SVN雙備份Shell腳本
- PHP程序員玩轉(zhuǎn)Linux系列 自動(dòng)備份與SVN
- linux svn服務(wù)器搭建、客戶端操作、備份與恢復(fù)
- Python實(shí)現(xiàn)SVN的目錄周期性備份實(shí)例
- IntelliJ IDEA使用SVN分支的簡(jiǎn)單介紹
- Webstorm2017上SVN插件安裝的方法步驟
- Jenkins與SVN持續(xù)集成的示例代碼
- 詳解Eclipse安裝SVN插件的兩種方法
- 詳解IntelliJ IDEA中TortoiseSVN修改服務(wù)器地址的方法
- linux下svn版本控制的常用命令大全
- SVN服務(wù)備份操作步驟分享
相關(guān)文章
Windows Server2012 安裝配置DNS服務(wù)器方法詳解
這篇文章主要介紹了Windows Server2012 安裝配置DNS服務(wù)器方法,需要的朋友可以參考下2018-03-03花生殼與Windows2003 建立WEB服務(wù)器的圖文教程
花生殼與Windows2003 建立WEB服務(wù)器的圖文教程...2007-08-08使用Cacls命令設(shè)置服務(wù)器文件訪問權(quán)限
使用Cacls命令設(shè)置服務(wù)器文件訪問權(quán)限...2007-01-01Apache rewrite重寫規(guī)則的常見應(yīng)用
---- 本文旨在提供如何用Apache重寫規(guī)則來解決一些常見的URL重寫方法的問題,通過常見的實(shí)例給用戶一些使用重寫規(guī)則的基本方法和線索。2008-03-03