Domanda

Ho una serie di file Berkeley DB sul mio file system Linux che vorrei esaminare.

Quali strumenti utili esistono per avere una rapida panoramica dei contenuti?Posso scrivere script Perl che utilizzano moduli BDB per esaminarli, ma sto cercando qualche utilità CLI per poter dare un'occhiata all'interno senza dover iniziare a scrivere script.

È stato utile?

Soluzione

Dai un'occhiata a db-utils pacchetto.Se usi apt, puoi installarlo con quanto segue: apt-get install db4.4-util (O apt-get install db4.8-util o qualunque versione tu abbia o preferisci.)

Collegamenti aggiuntivi:

Altri suggerimenti

Usa il db_dump programma.E' contenuto nella confezione core/db (Arco), db-util (Debian, Ubuntu), sys-libs/db (Gentoo, nota che qui il binario viene chiamato db4.8_dump o qualunque versione tu stia utilizzando).

Su alcuni sistemi le pagine man non sono installate, in tal caso è possibile trovare la documentazione Qui.Per impostazione predefinita, db_dump restituisce alcuni numeri esadecimali, il che non è molto utile se stai cercando di analizzare il contenuto di un database.Usa il -p argomento per cambiare questa situazione.

Mostra tutto ciò che è nel file database.db:

db_dump -p database.db

Elenca i database nel file database.db:

db_dump -l database.db

Mostra solo il contenuto del database mydb nel fascicolo database.db:

db_dump -p -s mydb database.db

Ho trovato la risposta di @strickli la più utile, poiché non volevo aggiungere nuovi pacchetti alla macchina con il database su cui mi trovavo.Tuttavia, il file db che stavo leggendo era di tipo btree, non hash, quindi ho dovuto usare 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
...

Come accennato nelle altre risposte, il pacchetto db-utils (db4-utils in RHEL) contiene alcuni strumenti.Tuttavia, db_dump può essere inutile, poiché l'output è in formato "bytevalue".

Per un visualizzatore veloce e sporco, usa Python:

me@machine$ 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
...

Tieni presente che dbhash è deprecato a partire da Python 2.6.

L'utilità db_hotbackup crea istantanee di "backup a caldo" o "failover a caldo" degli ambienti di database Berkeley DB.Installalo con quanto segue

apt-get installa db-util

quindi eseguire il comando seguente per eseguire il backup a caldo

db_hotbackup [-cdeguvv] [-d data_dir ...] [-h home] [-l log_dir] [-p password] -b backup_dir

Dopo aver installato le db utils puoi semplicemente fare a db_dump sul file db.

Tieni presente che la risposta iniziale dice di utilizzare il pacchetto "db-utils", ma l'esempio mostra il pacchetto "db-util" corretto.(senza "s")

Sotto Amazon Linux puoi installarlo con:

gnam installa db43-utils

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top