用svnsync 同步备份 svn 版本库 从一台服务器到令一台服务器

如用svnsync 同步备份两台机器的svn 。(就以linux服务器到windows服务器为例子)

要同步的项目名称:source_svn

svn 版本库1 。4 以上
源目录:            svn://192.168.16.199/source_svn
同步目标目录:      http:// 目标IP:8080/source_svnbak


方法:

1.如果目标目录存在相同的项目,请先清除,重新建立空项目

2.在目标服务器中建立svn版本库source_svnbak svnadmin create source_svnbak  (svnadmin是svn的命令如果没有将svn目录放到环境变量需要在其目录里面使用该句若是windows可以直接点击右键创建svn)
3.需要在hooks中将pre_revprop_change.tmpl改为pre_revprop_change.bat并将内容清空然后输入exit 0

4.执行初始化

  svnsync init svn://目标:ip:端口号/source_svnbak svn://192.168.16.199/source_svn

  (执行到这一般会出现一个问题 svnsync: 认证失败)解决:需要把源文件source_svn中的conf拷贝到目标source_svnbak中替换conf文件

  如果成功他会提示你输入用户名和密码(注:第一个是Administrator这个我觉得不用管随便输入,确定后才是你svn中填写的用户名和密码在conf中的文件有配置)


正确后,显示

Copied properties for revision 0.(复制版本 0 的属性。)

5
执行同步

svnsync sync svn://目标ip和端口号/source_svnbak --username xxxx  --password xxxx(一般端口号不用写除非端口号不是默认安装过的需要写,用户名和密码都在conf中有配置)

即svnsync sync 目标库

正确执行后,显示

复制版本号和提交数据等信息


6.更新同步

在source_svn的hooks下面,添加post-commit 脚本

可拷贝post-commit.tmpl


 

cp post-commit.tmpl post-commit

然后

把 post-commit 中,最后两行替换为
 

svnsync sync  --non-interactive svn://目标ip:(端口号)/source_svnbak --username xxx --password xxx

即提交更新后,即执行同步命令,不进行交互

把post-commit 设为755权限。

 

ps:

如果post-commit脚本出错,或者无可执行权限,在提交更新时会报错

错误处理 :
在源端 , 同步用的帐号需要有读权限 , 在目的端同步帐号需要读写权限 . 权限分配合理后 , 基本上就不会出现其他错误 .

如果出现以下列出的之外的错误 , 请先检查一下 svn 服务是否可正常使用 .
比较常见的错误是 :
# svnsync initialize DEST_URI SRC_URI --username cax  --password password_for_cax
svnsync: DAV request failed; it's possible that the repository's pre-revprop-change hook either failed or is non-existent
svnsync: At least one property change failed; repository is unchanged

这是由于系统中没有 pre-revprop-change 钩子脚本导致的 , 该文件在版本库的 ~/hooks/ 下 , 只需拷贝一份即可 .
cp -pf hooks/pre-revprop-change.tmpl hooks/pre-revprop-change

如果是 windows 系统 , 还需要清空 pre-revprop-change 的内容 , 并添加后缀为 pre-revprop-change.bat
在批处理文件中 , Linux 下 shell 中注释符 #   不能被 batch 正确解释也会重复出现该错误 .


 

本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2011-09/43514.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 为了保证Windows服务器上的SVN版本控制系统)数据的安全性,可以采取以下备份措施: 1. 定期备份SVN:使用SVN服务器自带的备份工具,将SVN中的所有数据进行定期备份。可以选择每日、每周或每月备份一次。备份时,应使用合适的存储介质,如外部硬盘、网络存储设备或云存储服务。 2. 定期备份SVN配置文件:定期备份包括svnserve.conf、passwd和authz等配置文件,以确保服务器恢复时能够还原配置信息。 3. 监控备份过程:在备份过程中,可以使用监控工具来监控备份的完整性和可用性。此外,还可以设置警报,以便及时发现备份故障或异常情况。 4. 多层次备份:采用不同的备份方法和策略,确保备份的多样性和可靠性。例如,可以使用完全备份、增量备份或差异备份等多种备份方式。 5. 测试备份可恢复性:定期测试备份的可恢复性,确保备份文件可以正常还原SVN服务器的数据。测试时,可以使用备份副本进行还原,并进行必要的验证。 6. 加强系统安全性:除了备份外,还应加强Windows服务器的安全性,以防止数据丢失或被恶意攻击。安全措施包括定期更新操作系统和防病毒软件、限制远程访问权限、定期审计系统日志等。 总之,对于Windows服务器上的SVN备份,应采取定期备份、配置文件备份、监控备份过程、多层次备份、测试备份可恢复性以及加强系统安全性等多项措施,来保证SVN数据的安全性和可靠性。 ### 回答2: Windows服务器上使用SVN进行备份的步骤如下: 1. 首先,确保SVN服务已经安装在Windows服务器上,并且已经正确配置和运行。 2. 创建一个用于存储备份文件的目录。可以选择在本地磁盘上创建一个新目录,或者将备份文件存储在网络共享文件夹中。 3. 打开SVN服务配置文件,通常位于服务器安装目录下的conf文件夹中,文件名为svnserve.conf。 4. 在配置文件中找到并取消注释以下两行: # password-db = passwd # authz-db = authz 5. 创建一个用于存储用户认证信息的passwd文件。在conf文件夹中创建一个新的文本文件,命名为passwd,并在文件中添加用户的认证信息。每行的格式为"username = password",如:john = 123456。 6. 创建一个用于设置用户访问权限的authz文件。在conf文件夹中创建一个新的文本文件,命名为authz,并在文件中添加用户的访问权限。每行的格式为"[repository_name:/path/to/folder] username = permission",如:[/] john = rw。 7. 打开命提示符,切换到SVN服务的bin目录中,执行以下命来启动SVN服务: svnserve.exe --daemon --root /path/to/repository 其中,/path/to/repository为SVN的路径。 8. 在SVN客户端中输入服务器的IP地址和端口号来连接到SVN服务。 9. 创建一个备份的工作副本,可以使用SVN客户端中的"Checkout"功能来完成。 10. 将工作副本的内容备份到之前创建的备份目录中。可以使用命行或者文件管理工具来拷贝工作副本的内容到备份目录中。 通过以上步骤,就可以在Windows服务器上使用SVN进行备份备份的文件将保存在指定的目录中,以便在需要时进行恢复或转移到其他位置。记得定期执行备份操作,确保数据的安全性和完整性。 ### 回答3: 在Windows服务器备份SVN的方法有以下几种: 1. 使用SVN的内置备份功能:SVN提供了一个名为“svnadmin”的命行工具,可以使用它来备份整个SVN。可以使用以下命备份svnadmin dump <仓路径> > <备份文件路径> 例如,假设SVN位于C盘的svnrepos文件夹下,要备份到D盘的backup文件中,可以使用以下命svnadmin dump C:\svnrepos > D:\backup 2. 使用第三方工具:除了SVN自带的备份工具,还可以使用一些第三方工具来备份SVN,例如BackupEDGE、Bacula等。这些工具可以提供更加全面和灵活的备份选择,可以备份整个仓、增量备份、定时备份等。 3. 使用版本控制软件:可以使用一些专门针对版本控制的软件来备份SVN。这些软件可以监控SVN的变化,并自动备份相关文件。例如,可以使用Veeam Backup & Replication等工具进行SVN备份。 无论选择哪种备份方法,都需要确保备份的数据完整性和存储的安全性。最好将备份文件存储在不同的存储介质上,如外部硬盘、网络存储设备等。此外,建议定期测试备份的可用性,以确保在需要时能够恢复数据。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值