作者woogee (woogee)
看板java
标题[问题] 求救Java程式码救援资料库失败
时间Mon Jan 16 17:56:27 2017
大家好,目前小弟我已经完全束手无策的状态下求助各位大大Q_Q
事情是这样的,周六的时候公司的资料库被骇客入侵
清掉所有的资料,并附上比特币连结...Orz
因为资料库非常庞大,我们估计有非常高的机率对方根本没有备份我们的资料库
我们自己有备份资料库,可是在还原的时候发现有档案遗失
自己搞了三天多,大致上还原回来,可是仍然有大约40%资料无法还原
好不容易找到有人有复原这个档案的方法,可是是Java写的
小弟本身是写网页前端和Python後端,对Java仅有Hello World经验..
试了好久仍然无法执行,所以只好上来求助各位大大
https://goo.gl/Pl260k
程式码在这边,是stackoverflow上有人回覆的,我试着将回答的Code
新增在C:\fix\中,取名为GenSegmentInfo.java
在命令提示字元(cmd)打
cd C:\fix\
javac GenSegmentInfo.java
到这边都正常执行,可是输入
java GenSegmentInfo
都出现「找不到或无法载入主要类别」,找了很多资料是说classpath的问题
所以我将它要用到的lucene-core-5.4.1.jar放到C:\fix\中
并在环境变数上设定好CLASSPATH为
C:\fix\;C:\fix\lucene-core-5.4.1.jar
再执行javac GenSegmentInfo.java,编译一样有过,可是仍然无法执行..
也试过
java -cp . GenSegmentInfo
java -classpath C:\fix\lucene-core-5.4.1.jar GenSegmentInfo
不信邪自己写了一个基本的Hello World,结果可以执行,囧
所以我自行猜测应该是最上头的package org....;这里,让它抓不到路径
我把它砍了改成package GenSegmentInfo;,结果反而编译不过..
GenSegmentInfo.java:23: error: cannot find symbol
SegmentInfo info = ....
^
symbol: class SegmentInfo
location: class GenSegmentInfo
类似这样的错误,5 error,看了一下可能是缺少档案,所以CLASSPATH又补上
C:\fix\lucene-queryparser-5.4.1.jar;C:\fix\lucene-backward-codecs-5.4.1;
C:\fix\lucene-analyzers-common-5.4.1
然後把上面的java -classpath 那边又试验过一轮,仍然无法..
请问有人可以帮帮小弟我吗Orz,先感谢各位大大
如果有叙述不清楚的地方再跟我说Q_Q,求各位了
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 1.171.152.143
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/java/M.1484560593.A.1F9.html
1F:→ realmeat: 我会直接Eclipse上跑, 挂上要的jar =.,= 01/16 18:31
2F:→ realmeat: solr log 会纪录指令, 你确定对方没dump? 01/16 18:34
3F:→ ssccg: java [完整的package名称].GenSegmentInfo 01/16 18:35
这个有试验过,会跑出
无法载入主要类别org.apache.lucene.index.GenSegmentInfo
4F:→ realmeat: 只对你们下了 delete *:* ? (看你的描述应该是这个) 01/16 18:35
我们是用Elasticsearch,底层也是用lucene,应该通用..(希望...)
另外,对方dump机率不大,我们资料库将近要1T,我先下载Eclipse试试看
5F:→ realmeat: 不过都能留下连结, 我看资料应该是被加密了 01/16 18:39
6F:→ realmeat: 如果我是hacker不会这麽麻烦, 你的档案放到其他地方改名 01/16 18:44
7F:→ realmeat: 这样最快, 而且你要找不回来, 每个档名都乱数取 01/16 18:44
伺服器本身没有被入侵,骇客是从9200 Port进来的,因为es早期版本没有auth的设计
本来这周就要升上5加上登入验证的package,没想到就悲剧...
8F:→ realmeat: 只留一份mapping table 的file加密放在某处 01/16 18:44
9F:→ yinghsun: java的class档要放在符合package的对应目录下 01/17 05:17
10F:→ yinghsun: 要逐层建立org/apache/lucene/index的目录结构 01/17 05:19
11F:→ yinghsun: 把编出来的class档放进去,cp指到最上层的目录和jar档 01/17 05:21
12F:→ yinghsun: 如果是 C:\fix\;C:\fix\lucene-core-5.4.1.jar 01/17 05:21
13F:→ yinghsun: c:\fix\org\apache\lucene\index\GenSegmentInfo.class 01/17 05:24
谢大大,我照1f大大的方式执行成功了,可是发现那个Code救不回我的资料
已经放弃了,选择从前几版的备份交叉补齐
14F:→ realmeat: 从9200进来八成是被删了, 应该有指令留下来, 建议对一下 01/17 10:01
15F:→ realmeat: Eclipse装上去, 用debug mode去看真的segment ID 01/17 10:10
16F:→ realmeat: 比较方便 =3=y-~ 原po加油吧 01/17 10:10
谢谢realmeat大大,我已经照你所说的用Eclipse汇入後执行成功,不过发现它
需要另一个档案来修复,那个档案也遗失了,应该是没救了
17F:推 v9290026: 还在1.x版ELK表示正在发抖… 01/18 12:53
1.x我记得有auth的plugin,不过非常难用,可以的话赶快升级5.0上x-pack吧..
虽然x-pack目前只有一年试用,有总比没有好
如果有对外的话,用IP filter过滤吧,我这边状况是因为Client端的IP并不固定
所以无法使用IP filter..
※ 编辑: woogee (1.171.60.99), 01/19/2017 00:13:51