linux搭建svn服務器及備份恢復

搭建svn服務

  1. 檢查是否已安裝
rpm -qa subversion
  1. 安裝SVN服務器
yum install subversion

驗證安裝

rpm -qa |grep subversion
  1. 代碼庫創建
mkdir -p /var/svn/svnrepos

svnadmin create /var/svn/svnrepos/svn1

執行後,自動建立repositories庫,查看/var/svn/svnrepos/svn1文件夾包含了conf,db,format,hooks,locks,README.txt等文件,說明一個SVN庫已經建立。

  1. 配置版本庫
  • svnserve.conf
[general]
#匿名訪問的權限,可以是read,write,none,默認爲read
anon-access=none
#使授權用戶有寫權限
auth-access=write
#密碼數據庫的路徑
password-db=passwd
#訪問控制文件
authz-db=authz
#認證命名空間,subversion會在認證提示裏顯示,並且作爲憑證緩存的關鍵字
realm=/var/svn/svnrepos
  • passwd
[users]
# harry = harryssecret
# sally = sallyssecret
test1=123456
test2=123456
  • authz
[group]
g_user=test1,test2

[svn1:/]
test1=rw  #給該用戶訪問所有庫的權限

[svn1:/dir2]  #給該用戶訪問目錄dir2的權限
test2=rw



[svn1:/]
@g_user=rw

PS:對權限配置文件的修改立即生效,不必重啓svn。

  1. 啓動SVN
#注意目錄,不包含svn1
svnserve -d -r /var/svn/svnrepos
  • 查看SVN進程
ps -ef | grep svn
  1. 關閉svn
killall svnserve
  1. 測試SVN的服務器
    svn://192.168.33.101/svn1

備份與恢復

  1. Linux中SVN的備份與恢復
    linux中SVN備份有三種方式
  • svnadmin dump 是官方推薦的備份方式,優點是比較靈活,可以全量備份也可以增量備份,並提供版本恢復機制。
    缺點是版本數過大,增長到數萬以上,那麼dump與load過程都將非常慢,耗時長不利於快速進行災難恢復。在版本數較小的情況下可以使用這種備份方式。
  • svnadmin hotcopy 只能進行全量拷貝,不能進行增量備份。優點是備份較快,恢復也快。缺點是比較耗費硬盤。
  • svnsync實際是製作2個鏡像庫,當一個壞了的時候可以迅速切換到另一個。需1.4以上版本支持,這裏不討論。
  1. svnadmin dump方式
  • a、全量備份一個倉庫
svnadmin dump /var/svn/svnrepos/svn1 > /svn/svndump/svn.0323.dump
  • b、增量備份
svnadmin dump /var/svn/svnrepos/svn1 -r 5200:5600 --incremental > /svn/svndump/svn_5600.0323.dump  
# 5200是上次全量備份時的最新版本,5600是當前最新版本。
  • 還原
    先在新服務器上建立一個空的倉庫,然後將備份文件load進新服務器倉庫。
svnadmin create /var/svn/svnrepos/svn2
svnadmin load /var/svn/svnrepos/svn2 < /svn/svndump/svn_5600.0323.dump

注意:這中備份方式沒有備份配置文件,如果conf目錄下的配置我呢見重要的話需要單獨備份出來,還原後手動拷貝到新版本庫覆蓋。

  1. svnadmin hotcopy方式
  • 備份
svnadmin hotcopy /var/svn/svnrepos/svn1 /svn/svndump/svn.0323.back
如果你傳遞–clean-logs選項,svnadmin會執行熱拷貝操作,然後刪除不用的Berkeley DB日誌文件。
可以在任何時候運行這個命令得到一個版本庫的安全拷貝,不管其它進程是否使用這個版本庫。
  • 還原
svnadmin hotcopy /svn/svndump/svn.0323.back /var/svn/svnrepos/svn2
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章