记一次取CSVN数据(基于windows2008的Collab Net Subversion)的坎坷经历

前言:公司一台两年前的SVN服务器,由于年久失修,基本信息已经湮灭在时光里,除了知道它曾经是某部门的svn服务器之外,其他一无所知......直到最近某一天,某部门突然想把这台机器里的数据都取出来,然后我就接下了这个光荣而艰巨的任务~~~讲真,我真的是知道它是个svn服务器......

拿到机器后,通上电,连上显示器......第一个问题,这是个windows2008的机器,我木有密码......

现做的PE盘,进系统破解了密码,此处就不赘述了,大家可以自行百度......

进入系统后,发现这个svn使用的是Collab Net Subversion的版本,讲真~~~我没用过。。。

然后各种百度,各种查资料,大概搞清楚了这个csvn的安装过程,然后发现,真玩意真是说简单就很简单,说复杂能让人吐血。

进入系统,找到了csvn的安装目录,在c盘,然后发现svn的数据仓库存在D盘,大小大概在14G左右。从本地直接启动csvn的后台,第二个问题来了~~~没有超级管理员的密码......默认的账号密码组admin,admin已经被修改了...Orz

所以首要任务,破解admin的密码~~~经过几天的资料查找以及无数的测试,最后发现,这个版本的svn使用的是一种叫psqldb的数据库,文件位置在:

这里多一句嘴,最好使用稍微专业点的编辑工具来打开文件,比如notepadd,editplus等,以免产生不必要的编码问题~~~毕竟csvn是结合apache的,windows的编辑工具容易产生BOM头。

打开之后,可以看到很多的sql语句,可以直接ctrl+f搜索:

这里是我虚拟机的文件,谨做说明演示。截取的是自带的admin账号的相关信息,可以看到value里有很多值,一个值是1.1,据我猜测,这是第一个账号的第二条sql记录,细心的你,肯定能看到图片上面还有一个1.0标识的插入语句,这个1指代的就是admin;然后第二个值是一长串的代码,这就是存储的admin的加密密码,从这串代码来看,这里的加密方式并不高级,所以你懂得~~~重点来了,我选择了最粗暴的方法,直接另开了一台win2008的虚拟机,装上相同版本的csvn,然后找到新开的csvn里的数据库文件,找到admin的加密密码,直接拷贝过来,复制粘贴,没错,就是默认的admin,密码也是admin,至于成不成功,先稍等会,咱们接着说这一长串的值的意义。密码后面的第三个值,代表的是账号的启用状态,TRUE即为启用。第四个值是账号名,第五个值是该账号的管理员邮箱,第六个值是管理员的描述,第七个值是管理员的说明。

然后重启csvn的两个服务,稍等片刻,重连后台,输入admin,admin,然后发现,登录成功了~~~这就意味着,我已经拿到了超级管理员的权限,那么接下来就是指定版本仓库的用户权限。如果不是做精细控制,只需要一个总的权限即可,像我这一次,就只是为了拷贝数据,所以我为所有的仓库都设置了admin这个超级管理员的读写权限,具体设置方法,请参考SVN权限设置

然后就是拷贝数据了~~~下载小乌龟的svn客户端(TortoiseSVN)安装配置,这里又有一个小坑,就是在连接数据仓库之前,你需要先在settings里配置csvn的权限账号密码:

然后打开repo browser,输入svn的url,然后输入账号密码,就能看到数据仓库里的内容了。

在这里我想吐槽一下,这个csvn由于是基于apache和subversion的,所以对中文路径的支持那是相当的差。在管理员后台登录的时候,查看数据仓库,你会发现,只要携带中文的目录,你去打开的时候都是404的位置错误,这给了我一个很大的迷惑......我一度以为是我把哪个配置文件改错了......最后发现,只是管理端后台有问题,正常用小乌龟连接上后,中文路径并不会报404//手动吐槽//

时间: 2024-10-24 15:20:05

记一次取CSVN数据(基于windows2008的Collab Net Subversion)的坎坷经历的相关文章

wireshark抓取本地数据包

windows系统中,本地向自身发送数据包没有经过真实的网络接口,而是通过环路(loopback interface)接口发送,所以使用基于只能从真实网络接口中抓数据的winpcap是无法抓取本地数据包,需要使用npcap,npcap是基于winpcap 4.1.3开发的,api兼容WinPcap,并且提供“npcap loopback adapter”用于抓取本地向自身发送的数据包. 使用方法: 1.下载安装WireShark,版本号必须是高于 1.12.8和 1.99.9,已安装就不用装了,

Scrapy爬取全站数据并存储到数据库和文件中

scrapy五大核心组件简介 引擎(Scrapy) 用来处理整个系统的数据流处理, 触发事务(框架核心) 调度器(Scheduler) 用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址 下载器(Downloader) 用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的) 爬虫(Spiders) 爬虫

Java语言实现通过Ajax抓取后台数据及图片

1.Java语言实现通过Ajax抓取后台数据及图片信息 1.1数据库设计 create table picture( pic_id number not null, pic_name varchar(200)not null, pic_url varchar2(200) not null, pic_descp varchar2(200) not null, pic_price varchar2(200) not null ) insert into picture values(1 ,'小米5s

Asp.net 使用正则和网络编程抓取网页数据(有用)

Asp.net 使用正则和网络编程抓取网页数据(有用) /// <summary> /// 抓取网页对应内容 /// </summary> /// <param name="strUrl">採集地址</param> /// <param name="Begin">開始字符</param> /// <param name="End">结束字符</param&g

sql 分组取最新的数据sqlserver巧用row_number和partition by分组取top数据

SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单 分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系统中取出每个学科前3名的学生.这种查询在SQL Server 2005之前,写起来很繁琐,需要用到临时表关联查询才能取到.SQL Server 2005后之后,引入了row_number()函数,row_number()函数的分组排序功能使这种操作变得非常简单.下面是一个简单示例: --1.创建测试

爬虫再探实战(五)———爬取APP数据——超级课程表【一】

关于爬虫,开始以为只能爬取网页数据,后来知道APP也能抓取.于是,在学校利用空闲时间,耗时两周实现了数据的抓取和简单的数据分析. 目标,抓取超级课程表XX大学(其实是我们大学啦...)学生20000条发帖信息.思路如下: STEP1:为我们的爬虫找到入口 APP请求数据,也是通过网络协议,这样,我们就抓包来定位入口,这里我用的是fiddler.关于设置手机和fiddler的关联,请参考这篇文章. 找到登陆入口为:http://120.55.151.61/V2/StudentSkip/loginC

利用linux curl爬取网站数据

看到一个看球网站的以下截图红色框数据,想爬取下来,通常爬取网站数据一般都会从java或者python爬取,但本人这两个都不会,只会shell脚本,于是硬着头皮试一下用shell爬取,方法很笨重,但旨在结果嘛,呵呵. 2.首先利用curl工具后者wget工具把整个网站数据爬取下来 curl 网址 >wangzhan.txt 3.查看wangzhan.txt文件,找出规则,看到数据是存放在哪个地方,本人是把txt文件拷到本机上用UE打开方便查看.通过查看文件,我发现数据是存储在"var aut

java抓取网页数据,登录之后抓取数据。

最近做了一个从网络上抓取数据的一个小程序.主要关于信贷方面,收集的一些黑名单网站,从该网站上抓取到自己系统中. 也找了一些资料,觉得没有一个很好的,全面的例子.因此在这里做个笔记提醒自己. 首先需要一个jsoup的jar包,我用的1.6.0..下载地址为:http://pan.baidu.com/s/1mgqOuHa 1,获取网页内容(核心代码,技术有限没封装). 2,登录之后抓取网页数据(如何在请求中携带cookie). 3,获取网站的ajax请求方法(返回json). 以上这三点我就用一个类

Asp.net 使用正则和网络编程抓取网页数据(实用)

Asp.net 使用正则和网络编程抓取网页数据(实用) /// <summary> /// 抓取网页相应内容 /// </summary> /// <param name="strUrl">采集地址</param> /// <param name="Begin">开始字符</param> /// <param name="End">结束字符</param&g