公司里有台机器作为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中的数据备份到这台电脑上,该怎么办?的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 file:// 签出本地 svn 存储库

gitlab干货

公司实现全网备份项目:(rsync+定时任务)

两台服务器网卡工作方式不同,网络异常

linux操作系统(红帽8)如何设置局域网IP,使域内所有其它机器能访问它?

SVN备份,一个强大脚本