2008-09-01 15 views
47

से बर्कले डीबी फाइलों की जांच करना मेरे पास मेरे लिनक्स फ़ाइल सिस्टम पर बर्कले डीबी फाइलों का एक सेट है जिसे मैं जांचना चाहता हूं।सीएलआई

सामग्री का त्वरित अवलोकन पाने के लिए कौन से उपयोगी टूल मौजूद हैं? मैं पर्ल स्क्रिप्ट्स लिख सकता हूं जो उन्हें जांचने के लिए बीडीबी मॉड्यूल का उपयोग करते हैं, लेकिन मैं स्क्रिप्ट लिखना शुरू किए बिना अंदर देखने के लिए कुछ सीएलआई उपयोगिता की तलाश में हूं।

उत्तर

23

डीबी-यूटिल पैकेज देखें। आप उपयुक्त का उपयोग करते हैं, तो आपको निम्न के साथ स्थापित कर सकते हैं: (। या apt-get install db4.8-util या जो कुछ भी संस्करण है या पसंद करते हैं) apt-get install db4.4-util

अतिरिक्त लिंक:

+4

डीबी 4.8_डम्प के आउटपुट को समझने का तरीका या उस पैकेज से जो कुछ भी आसान होगा, उसका एक उदाहरण आसान होगा। आउटपुट प्रारूप को डंप मैन पेज में भी वर्णित नहीं किया गया है, और यहां तक ​​कि 'बाइटवेल्यू' प्रारूप या जो कुछ भी है उसका वर्णन नहीं करता है ..... पैकेज को ढूंढने और इंस्टॉल करने की आवश्यकता के बिना सुंदर आउटपुट के लिए, जवाब देखें पायथन का प्रयोग, उदाहरण के लिए trjh द्वारा। – nealmcb

+2

मेरे पैकेज का नाम 'db-util' – user123456

6

db_hotbackup उपयोगिता बी के "हॉट बैकअप" या "हॉट फेलओवर" स्नैपशॉट बनाता है erkeley डीबी डेटाबेस वातावरण। निम्नलिखित

के साथ स्थापित apt-get db-util

स्थापित तो निम्न आदेश चला गर्म बैकअप लेने के लिए

[-cDEguVv] db_hotbackup [-d data_dir ...] [- ज घर] [-l log_dir] [-पी पासवर्ड] बी backup_dir

5

आप सरल db फ़ाइल पर एक db_dump कर सकते हैं एक बार जब आप db utils स्थापित किया है।

2

ध्यान दें कि प्रारंभिक उत्तर "डीबी-यूटिल" पैकेज का उपयोग करने के लिए कहता है, लेकिन उदाहरण सही "डीबी-यूज" पैकेज दिखाता है। (बिना "एस")

8

जैसा कि अन्य उत्तरों में बताया गया है, डीबी-यूटिल पैकेज (आरएचईएल के तहत डीबी 4-यूटिल) में कुछ टूल्स हैं। हालांकि, db_dump अनुपयोगी हो सकता है, क्योंकि आउटपुट 'बाइटवेल्यू' प्रारूप है।

[email protected]$ python 
Python 2.7.3 (default, Sep 26 2013, 20:03:06) 
>>> import dbhash 
>>> for k, v in dbhash.open(*<db filename here...>*).iteritems(): print k, v 
... 

ध्यान दें कि dbhash अजगर 2.6 के बाद से हटा दिया गया है:

एक quick'n'dirty व्यूअर के लिए, अजगर का उपयोग करें।

12

मुझे @ strickli का उत्तर सबसे उपयोगी होने का जवाब मिला, क्योंकि मैं उस डेटाबेस के साथ मशीन में कोई नया पैकेज नहीं जोड़ना चाहता था। हालांकि, डाटाबेस फ़ाइल मैं पढ़ रहा था प्रकार BTREE, नहीं हैश की थी, इसलिए मैं

# file foo.db 
foo.db: Berkeley DB (Btree, version 9, native byte-order) 

# python 
>>> import bsddb 
>>> for k, v in bsddb.btopen("*<db filename here...>*").iteritems(): 
...  print k,v 
... 
1

bsddb उपयोग करने के लिए अमेज़न लिनक्स के तहत आप के साथ स्थापित कर सकते हैं था:

यम स्थापित db43-utils

19

db_dump प्रोग्राम का उपयोग करें। यह पैकेज core/db (आर्क), db-util (डेबियन, उबंटू), sys-libs/db (Gentoo, ध्यान दें कि यहां बाइनरी को db4.8_dump या जो भी संस्करण आप उपयोग कर रहे हैं) में निहित है।

कुछ सिस्टमों पर मैन पेज स्थापित नहीं होते हैं, उस स्थिति में दस्तावेज here पाया जा सकता है। डिफ़ॉल्ट रूप से, db_dump कुछ हेक्स संख्याओं को आउटपुट करता है, जो वास्तव में उपयोगी नहीं है यदि आप किसी डेटाबेस की सामग्री का विश्लेषण करने का प्रयास कर रहे हैं। इसे बदलने के लिए -p तर्क का उपयोग करें।

सब कुछ फ़ाइल database.db में है कि दिखाएं:

db_dump -l database.db 

फ़ाइल में डेटाबेस mydb का केवल सामग्री दिखाएं:

db_dump -p database.db 

सूची फ़ाइल database.db में डेटाबेस database.db:

db_dump -p -s mydb database.db 
+2

द्वारा किया गया था शीर्ष उत्तर होना चाहिए – alexg