Prüfung der Berkeley-DB-Dateien aus dem CLI
-
09-06-2019 - |
Frage
Ich habe eine Gruppe von Berkeley-DB-Dateien auf meinem Linux-Dateisystem, das würde ich gerne untersuchen.
Was für nützliche tools vorhanden sind, um eine schnelle übersicht über den Inhalt?Ich kann schreiben, Perl-Skripts, mit denen BDB-Module für die Prüfung, aber ich bin auf der Suche für einige CLI-Dienstprogramm, um in der Lage sein zu nehmen einen Blick in die zimmerreserviereung, ohne das start-Skripts schreiben zu müssen.
Lösung
Überprüfen Sie heraus die db-utils Paket.Wenn Sie apt benutzen, können Sie es mit den folgenden: apt-get install db4.4-util
(oder apt-get install db4.8-util
oder welche version Sie haben oder lieber.)
Weitere links:
Andere Tipps
Verwenden Sie die db_dump
Programm.Es ist enthalten in die Paket core/db
(Arch), db-util
(Debian, Ubuntu), sys-libs/db
(Gentoo, beachten Sie, dass hier der binären genannt db4.8_dump
oder welche version Sie verwenden).
Auf einigen Systemen die man pages nicht installiert, in diesem Fall die Dokumentation finden Sie hier.Standardmäßig db_dump
Ausgänge einige hex-zahlen, die nicht wirklich nützlich, wenn Sie versuchen, zu analysieren, den Inhalt einer Datenbank.Verwenden Sie die -p
argument, das zu ändern.
Zeigen Sie alles, was in der Datei database.db
:
db_dump -p database.db
Liste der Datenbanken in der Datei database.db
:
db_dump -l database.db
Zeigen Sie nur die Inhalte der Datenbank mydb
in der Datei database.db
:
db_dump -p -s mydb database.db
Ich fand @strickli Antwort auf die meisten hilfreich, da ich nicht wollen, fügen Sie neue Pakete auf die Maschine mit der Datenbank, die ich war.Jedoch, die db-Datei, die ich Las, war der Typ btree, hash nicht, also musste ich 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
...
Wie bereits in den anderen Antworten, die db-utils-Paket (db4-utils unter RHEL) hat einige Werkzeuge.Doch db_dump werden kann, wenig hilfreich, da die Ausgabe 'bytevalue' - format.
Für eine schnelle Lösung viewer, die python verwenden:
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
...
Beachten Sie, dass dbhash ist veraltet seit python 2.6.
Die db_hotbackup Dienstprogramm erstellt die "hot-backup" - oder "hot failover" snapshots von Berkeley-DB-Datenbank-Umgebungen.Installieren Sie es mit folgenden
apt-get install-db-util
führen Sie dann folgenden Befehl hot backup
db_hotbackup [-cDEguVv] [-d data_dir ...] [-h home] [-l log_dir] [-P Kennwort] -b backup_dir
Wenn Sie installiert haben die db-utils können Sie einfach tun db_dump auf die db-Datei.
Beachten Sie, dass die erste Antwort sagt zu "db-utils" - Paket, aber das Beispiel zeigt den richtigen "db-util-Paket".(ohne "s")
Unter Amazon Linux können Sie installieren mit:
yum install db43-utils