[問題] 求救Java程式碼救援資料庫失敗

看板java作者 (woogee)時間8年前 (2017/01/16 17:56), 8年前編輯推噓1(1016)
留言17則, 4人參與, 最新討論串1/1
大家好,目前小弟我已經完全束手無策的狀態下求助各位大大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://www.ptt.cc/bbs/java/M.1484560593.A.1F9.html

01/16 18:31, , 1F
我會直接Eclipse上跑, 掛上要的jar =.,=
01/16 18:31, 1F

01/16 18:34, , 2F
solr log 會紀錄指令, 你確定對方沒dump?
01/16 18:34, 2F

01/16 18:35, , 3F
java [完整的package名稱].GenSegmentInfo
01/16 18:35, 3F
這個有試驗過,會跑出 無法載入主要類別org.apache.lucene.index.GenSegmentInfo

01/16 18:35, , 4F
只對你們下了 delete *:* ? (看你的描述應該是這個)
01/16 18:35, 4F
我們是用Elasticsearch,底層也是用lucene,應該通用..(希望...) 另外,對方dump機率不大,我們資料庫將近要1T,我先下載Eclipse試試看

01/16 18:39, , 5F
不過都能留下連結, 我看資料應該是被加密了
01/16 18:39, 5F

01/16 18:44, , 6F
如果我是hacker不會這麼麻煩, 你的檔案放到其他地方改名
01/16 18:44, 6F

01/16 18:44, , 7F
這樣最快, 而且你要找不回來, 每個檔名都亂數取
01/16 18:44, 7F
伺服器本身沒有被入侵,駭客是從9200 Port進來的,因為es早期版本沒有auth的設計 本來這周就要升上5加上登入驗證的package,沒想到就悲劇...

01/16 18:44, , 8F
只留一份mapping table 的file加密放在某處
01/16 18:44, 8F

01/17 05:17, , 9F
java的class檔要放在符合package的對應目錄下
01/17 05:17, 9F

01/17 05:19, , 10F
要逐層建立org/apache/lucene/index的目錄結構
01/17 05:19, 10F

01/17 05:21, , 11F
把編出來的class檔放進去,cp指到最上層的目錄和jar檔
01/17 05:21, 11F

01/17 05:21, , 12F
如果是 C:\fix\;C:\fix\lucene-core-5.4.1.jar
01/17 05:21, 12F

01/17 05:24, , 13F
c:\fix\org\apache\lucene\index\GenSegmentInfo.class
01/17 05:24, 13F
謝大大,我照1f大大的方式執行成功了,可是發現那個Code救不回我的資料 已經放棄了,選擇從前幾版的備份交叉補齊

01/17 10:01, , 14F
從9200進來八成是被刪了, 應該有指令留下來, 建議對一下
01/17 10:01, 14F

01/17 10:10, , 15F
Eclipse裝上去, 用debug mode去看真的segment ID
01/17 10:10, 15F

01/17 10:10, , 16F
比較方便 =3=y-~ 原po加油吧
01/17 10:10, 16F
謝謝realmeat大大,我已經照你所說的用Eclipse匯入後執行成功,不過發現它 需要另一個檔案來修復,那個檔案也遺失了,應該是沒救了

01/18 12:53, , 17F
還在1.x版ELK表示正在發抖…
01/18 12:53, 17F
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
文章代碼(AID): #1OV9ZH7v (java)
文章代碼(AID): #1OV9ZH7v (java)