我在我的Linux文件系統上有一組Berkeley DB文件,我想檢查一下。從CLI檢查Berkeley DB文件
有什麼有用的工具可以快速瀏覽內容?我可以編寫使用BDB模塊檢查它們的Perl腳本,但是我正在尋找一些CLI實用程序,以便能夠在不必開始編寫腳本的情況下查看。
我在我的Linux文件系統上有一組Berkeley DB文件,我想檢查一下。從CLI檢查Berkeley DB文件
有什麼有用的工具可以快速瀏覽內容?我可以編寫使用BDB模塊檢查它們的Perl腳本,但是我正在尋找一些CLI實用程序,以便能夠在不必開始編寫腳本的情況下查看。
查看db-utils包。如果你使用apt,您可以用下面的安裝:(你還是喜歡或apt-get install db4.8-util
或任何版本)apt-get install db4.4-util
其他鏈接:
db_hotbackup實用程序創建B的「熱備份」或「熱故障轉移」快照erkeley DB數據庫環境。具有以下
安裝它易於得到安裝DB-UTIL
然後運行下面的命令採取熱備份
db_hotbackup [-cDEguVv] [-d DATA_DIR ...] [ - h居住] [-l LOG_DIR] [-P密碼] -b BACKUP_DIR
一旦你已經安裝了DB utils的,你可以簡單的做數據庫文件db_dump。
請注意,初始答案表示使用「db-utils」包,但示例顯示了正確的「db-util」包。 (沒有「s」)
正如其他答案中提到的,db-utils軟件包(RHEL下的db4-utils)有一些工具。但是,由於輸出是'bytevalue'格式,因此db_dump可能無用。
對於quick'n'dirty瀏覽器,使用Python:
[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是因爲Python 2.6棄用。
我發現@ strickli的答案是最有幫助的,因爲我不想用數據庫添加任何新包到機器上。然而,數據庫文件我讀了類型B樹,沒有散的,所以我不得不bsddb
# 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
...
使用在亞馬遜的Linux可以與安裝:
百勝安裝DB43-utils的
使用db_dump
程序。它包含在包core/db
(Arch),db-util
(Debian,Ubuntu),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
如何理解db4.8_dump的輸出或來自該軟件包的任何內容的例子都很方便。輸出格式甚至沒有在轉儲手冊頁本身中描述,甚至沒有描述'bytevalue'格式或不管它是什麼.....爲了更漂亮的輸出而不需要找到和安裝包,請參閱答案使用Python,例如由trjh。 – nealmcb 2014-11-04 22:37:34
我的包被`db-util`命名爲 – user123456 2016-11-04 14:13:55