1、查看是否安裝SVN
svn --version
centos下SVN服務的啟動與關閉
2、啟動SVN服務:
svnserve -d -r /home/svn
/home/svn 為版本庫的根目錄;
3、關閉SVN服務:
killallsvnserve #關閉svn
或者
使用以下命令查找進程
ps aux | grep svn
# ps aux | grep svn
使用Kill命令殺死進程
kill -s 9 64434
64434為進程ID
svnserve配置
2.1 創建倉庫
2.1.1 創建倉庫存放目錄
# mkdir -p /opt/svn/{repos,etc}
2.1.2 創建SVN倉庫
# svnadmin create /opt/svn/repos/source1
# svnadmin create /opt/svn/repos/source2
# chown -R svn:svn /opt/svn/
倉庫名稱可以根據自己的規劃或喜好設定。
2.2 配置倉庫
SVN的svnserve對于每個倉庫,有一個獨立的配置文件和獨立的用戶、權限管理。
在這里仍然要保持配置文件svnserve.conf的獨立,但是用戶、權限管理是用統一的一個文件來存儲。
這樣方便以后的管理和維護。
另外要注意,即使svnserve服務已經運行,修改配置文件或者用戶、權限管理文件,保存后馬上生效,不需要重啟服務。
2.2.1 配置source1倉庫
進入倉庫目錄
# cd /opt/svn/repos/source1
2.2.2 修改配置
你可以直接刪除默認的svnserve.conf文件,然后使用下面的配置:
# vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/etc/svn-user.conf
authz-db = /opt/svn/etc/svn-authz.conf
realm = My First Repository
說明:
anon-access = none #不允許匿名用戶訪問
auth-access = write #通過驗證的用戶可以讀和寫
password-db = /opt/svn/etc/svn-user.conf #用戶保存文件
authz-db = /opt/svn/etc/svn-authz.conf #權限管理文件
realm = My First Repository #倉庫名稱
2.2.3 配置source2倉庫
# cd /opt/svn/repos/source2
2.2.4 修改配置
你可以直接刪除默認的svnserve.conf文件,然后使用下面的配置:
# vi svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = /opt/svn/etc/svn-user.conf
authz-db = /opt/svn/etc/svn-authz.conf
realm = My Second Repository
如果有更多的倉庫,可以類推配置。
----------------------------------------------------------------------
svnserve.conf的原始內容:
..............................略
----------------------------------------------------------------------
3 用戶及權限管理
3.1 用戶管理3.1.1創建用戶存儲文件
# vi /opt/svn/etc/svn-user.conf
3.1.2 設置用戶帳號
[users]
harry = harryssecret
sally = sallyssecret
bote = botessecret
說明:
[users] #是必須的,標記為用戶配置開始
harry = harryssecret # harry 是用戶名, harryssecret是密碼。注意,是明文密碼
sally = sallyssecret # 同上
bote = botessecret # 同上
往后所以倉庫的用戶都在這里記錄就可以了。至于那個用戶,允許訪問那個倉庫,在權限管理里限制。
3.2 權限管理3.2.1創建權限管理文件
# vi /opt/svn/etc/svn-authz.conf
3.2.1 設置權限管理
[groups]
source1 = harry
source2 = sally
[source1:/]
@source1 = rw
@source2 = r
[source2:/]
@source2 = rw
bote = rw
4、導入備份文件
1. 輸入命令:svnadmin load /svndata/fpp </root/fpp.dump,運行結果如下
svnadmin load/svndata/fpp < /root/fpp.dump,
初級篇:
版本庫數據的移植:svnadmindump、svnadminload
導出:
$svnlook youngestmyrepos//查看到目前為止最新的版本號
$svnadmin dumpmyrepos > dumpfile//將指定的版本庫導出成文件dumpfile
導入:
$svnadmin loadnewrepos < dumpfile
中級篇:
$svnadmin dumpmyrepos –r23>rev-23.dumpfile //將version23導出
$svnadmin dumpmyrepos –r 100:200>rev-100-200.dumpfile //將version100~200導出
對比較大的庫可以分解成幾個文件導出,便于備份
$svnadmin dumpmyrepos –r 0:1000>0-1000.dumpfile
$svnadmin dumpmyrepos –r 1001:2000 --incremental>1001-2000.dumpfile
$svnadmin dumpmyrepos –r 2001:3000 --incremental>2001:3000.dumpfile
在導入時,可以將這幾個備份文件裝載到一個新的版本庫中
$svnadmin loadmyrepos <0-1000.dumpfile
$svnadmin loadmyrepos <1001-2000.dumpfile
$svnadmin loadmyrepos <2001:3000.dumpfile
防火墻開放特定端口:
①文件/etc/sysconfig/iptables
A INPUT -p tcp --dport 22 -j ACCEPT
-A OUTPUT -p tcp --sport 22 -j ACCEPT
參數講解:
–A 參數就看成是添加一條規則
–p 指定是什么協議,我們常用的tcp協議,當然也有udp,例如53端口的DNS
–dport 就是目標端口,當數據從外部進入服務器為目標端口
–sport 數據從服務器出去,則為數據源端口使用
–j 就是指定是 ACCEPT -接收或者 DROP不接收
vi編輯器中的整行(多行)復制與粘貼就非常必要了。
1、復制
1)單行復制
在命令模式下,將光標移動到將要復制的行處,按“yy”進行復制;
2)多行復制
在命令模式下,將光標移動到將要復制的首行處,按“nyy”復制n行;其中n為1、2、3……
2、粘貼
在命令模式下,將光標移動到將要粘貼的行處,按“p”進行粘貼
更改SVN端口:
svnserve -d –r /var/lib/svn/ --listen-port 88
nohup和&后臺運行,進程查看及終止
查看運行的后臺進程
(1)jobs -l
jobs命令只看當前終端生效的,關閉終端后,在另一個終端jobs已經無法看到后臺跑得程序了,此時利用ps(進程查看命令)
(2)ps -ef
1
ps -aux|grep chat.js
a:顯示所有程序
u:以用戶為主的格式來顯示
x:顯示所有程序,不以終端機來區分
注:
用ps -def | grep查找進程很方便,最后一行總是會grep自己
linux環境下實現svn服務器支持http協議
、安裝Apache
yum install httpd apr apr-utilhttpd-devel #安裝Apache
yum install mod_dav_svnmod_auth_MySQL #安裝基于Apache的http模式訪問的支持模塊
chkconfig httpd on #設置開機啟動
service httpd start #啟動Apache
httpd -version #查看Apache版本信息
cd /etc/httpd/modules/
#查看是否有mod_dav_svn.so和mod_authz_svn.so模塊,如果有,說明mod_dav_svn安裝成功!
#mod_auth_mysql模塊是用數據庫存儲賬號信息,本次教程沒有涉及,可以不安裝!
編輯http配置文檔
vi /etc/httpd/conf/httpd.conf #編輯
修改端口
Listen 88
ServerName www.example.com:88 #去掉前面的注釋
設置Apache配置與文件
vi /etc/httpd/conf.d/subversion.conf
<Location/svn>
DAVsvn
#SVNPath/home/svn
SVNParentPath/var/lib/svn
## Limit write permission to list of valid users.
#<LimitExcept GET PROPFIND OPTIONS REPORT>
## Require SSL connection for password protection.
## SSLRequireSSL
#
AuthTypeBasic
AuthName"Authorization SVN"
AuthzSVNAccessFile/var/lib/svn/etc/svn-authz.conf #權限文件目錄
AuthUserFile/var/lib/svn/etc/http_passwd #httpd協議訪問svn的賬號密碼存放目錄,
Requirevalid-user
#</LimitExcept>
</Location>
/home/svn/conf/目錄下面svn-user.conf文件是svnserve獨立服務器使用的認證文件,密碼沒有加密,明文顯示。
/home/svn/conf/目錄下面http_passwd文件是Apache的http模式使用的認證文件,密碼使用MD5加密。
passwd和http_passwd文件中,賬號密碼必須設置相同
http模式使用的認證文件,密碼使用MD5加密,創建用戶
htpasswd -c -m /var/lib/svn/etc/http_passwd zxc
htpasswd -m /var/lib/svn/etc/http_passwd zxc2
根據提示輸入兩次密碼即可。
因為http協議和svn協議使用的認證文件編碼格式不同,所以不能共用一套認證文件。
注意:/var/lib/svn/etc/是我的數據倉庫目錄,http_passwd是我創建的認證文件名稱。zxc是我創建的第一 個用戶,因為是第一個用戶,所以需要加-c,以后創建賬戶不需要加-c命令。
為Apache設置目錄權限
chown apache:apache /var/svn/svntest -R
為Apache設置數據倉庫的所有者權限
重啟Apache服務
service httpd restart