公司里有台机器作为SVN的服务器,现在我想另找一台电脑,然后将SVN中的数据备份到这台电脑上,该怎么办?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了公司里有台机器作为SVN的服务器,现在我想另找一台电脑,然后将SVN中的数据备份到这台电脑上,该怎么办?相关的知识,希望对你有一定的参考价值。
方法很多,可以将svn的代码库直接打包拷贝到新的服务器;也可以通过svnadmin dump将代码dump出来,然后通过svnadmin load进行恢复;当然通过svnsync也可以,但操作提交麻烦。建议采用前面两个来自:求助得到的回答 参考技术A 1.把你的另一台电脑的硬盘拔下来2.拔下来的硬盘插到要拷贝服务器的主板接口
3.打开服务器的电脑后会多出个盘
4.把所有东西全部拷贝到新盘上(通俗点剪切复制)
5.拷贝好后拔下来在装回原电脑
妥了,希望帮到你。 参考技术B 用脚本,使用svnadmin dump命令将代码dump出来,然后远程写入另一台机器.
一般我们是一个月一次完整备份,每天一次或两次增量备份,均使用计划任务执行.来自:求助得到的回答本回答被提问者采纳 参考技术B 把仓库拷贝过去就行了。假如你没有直接访问的权限,可以使用svnsync 参考技术C 拷过去
SVN备份,一个强大脚本
公司有台SVN服务器,平时不经常备份。领导最近要求说要定期备份,于是整理了一个脚本,这个脚本是一个网友写的吧,感觉不错,然后就翻译了一次。也收藏下,如果看着排版就把附件下载下来用notepad++看吧,在此也谢谢这个脚本的原创作者,感谢分享
@echo off ##关闭显示处理过程。 rem -----设置环境变量-------##rem在cmd中是注释的意思,和::差不多 rem -----设置SVN目录-------- set svnpath=C:\Repositories\##set设置变量 rem -----设置SVN备份目录------- set backuppath=E:\Backup\svn rem -----备份时间--- set backupdate=%date:~0,4%%date:~5,2%%date:~8,2%##备份日期,格式为‘20170902‘ set backuptime=%date:~0,4%-%date:~5,2%-%date:~8,2% %time:~0,2%:%time:~3,2%##备份日期,格式为‘2017-09-02‘ rem ----日志文件路径------ set LogFile=%backuppath%%backupdate%\svn.log ##设置备份的日志文件,具体路径套用上述设置的变量值 setlocal enabledelayedexpansion ##启用延迟变量。具体不明白可以http://www.jb51.net/article/29323.htm ----------------------------------------------------------- 以上内容不会被打印到日志 -------------------------------------------------------------- if not exist %backuppath%%backupdate% ( md %backuppath%%backupdate% echo %backuptime% 创建备份目录成功>> %LogFile% ) ###以上做了一个if判断,exist 是cmd判断文件是否存在的命令 使用方法有 exist(存在)、not exist(不存在) ###判断,如果 %backuppath%%backupdate% 不存在则执行()里面的语句进行创建备份目录。 ###cmd下的for语句学习:http://blog.csdn.net/xhhjin/article/details/7373524 ###如果在linux或者cmd中命令执行有问题,则可以通过 echo Command > debug.txt 的形式来打印执行信息,看是不是命令执行有问题,这也就是脚本排错的精髓 echo ------------------------------------------- >> %LogFile% echo %backuptime% 开始备份SVN操作>> %LogFile% echo ------------------------------------------- >> %LogFile% for /f %%I in (‘dir %svnpath% /a:d /b‘) do ( if exist %svnpath%%%I\hooks ( md %backuppath%%backupdate%\%%I ## dir %svnpath% /a:d /b 列出%svnpath%下的信息,将此过程传递给定义的%I变量 ##判断如果存在这个路径,则执行()内的内容 ##根据判断存在,进行此步创建 echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:开始备份%%I >> %LogFile% ## 打印当前时间,在log中标注此过程为开始备份 svnadmin hotcopy %svnpath%%%I %backuppath%%backupdate%\%%I ##svnadmin hotcopy进行热备一份到备份文件夹下 echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:完成备份%%I >> %LogFile% ##打印当前时间,在log中标注此过程为开始备份 echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:开始压缩%%I >> %LogFile% ##打印当前时间,在log中标注此过程为开始压缩 "C:\Program Files\HaoZip\HaoZipC.exe" a -tzip %backuppath%%backupdate%\%%I.zip %backuppath%%backupdate%\%%I >> %LogFile% ##调用好压命令,根据已经备份的文件夹进行压缩,并打印压缩过程 echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:完成压缩%%I >> %LogFile% ##打印当前时间,在log中标注此过程为完成压缩 echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:开始删除%%I目录>> %LogFile% ##打印当前时间,将删除目录的时间记录到log日志中 rd %backuppath%%backupdate%\%%I /s/q ##所有文件全部压缩后,删除未被压缩文件,保留已经压缩备份的文件 echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:完成删除%%I目录>> %LogFile% ##将此阶段在日志中标注为删除目录已完成 ) ) echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:SVN备份完成>> %LogFile% echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:开始删除历史备份版本>> %LogFile% ----------------------------------------------------------- 以上备份全部完成,以下为删除历史备份文件 -------------------------------------------------------------- rem 以下为删除历史备份信息,并设置最大保留备份数量 set maxNum=31 for /f "skip=%maxNum%" %%I in (‘dir %backuppath% /a:d /o:-d /b‘) do ( rd %backuppath%%%I /s/q echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:删除%%I成功>> %LogFile% ) echo %date:~0,4%-%date:~5,2%-%date:~8,2% !time:~0,2!:!time:~3,2!:!time:~6,2!:完成删除历史备份版本>> %LogFile% @echo on
本文出自 “小小小平凡” 博客,谢绝转载!
以上是关于公司里有台机器作为SVN的服务器,现在我想另找一台电脑,然后将SVN中的数据备份到这台电脑上,该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章