Изучение файлов Berkeley DB из CLI
У меня есть набор файлов Berkeley DB в файловой 9X_command-line-interface системе Linux, которые я хотел бы изучить.
Какие 9X_bdb существуют полезные инструменты для быстрого 9X_berkeley-db просмотра содержимого? Я могу писать Perl-скрипты, которые 9X_bdb используют модули BDB для их изучения, но 9X_command-line-interface я ищу какую-нибудь утилиту CLI, чтобы заглянуть 9X_bdb внутрь, не прибегая к написанию скриптов.
Ответ #1
Ответ на вопрос: Изучение файлов Berkeley DB из CLI
Используйте программу db_dump
. Он содержится в 9X_linux пакете core/db
(Arch), db-util
(Debian, Ubuntu), sys-libs/db
(Gentoo, обратите 9X_bdb внимание, что здесь двоичный файл называется 9X_command-line-interface db4.8_dump
или любой другой версией, которую вы используете).
В 9X_command-line-interface некоторых системах страницы руководства 9X_cli не устанавливаются, в этом случае документацию 9X_cli можно найти here. По умолчанию db_dump
выводит некоторые 9X_berkeley-db шестнадцатеричные числа, что не очень полезно, если 9X_command-line-interface вы пытаетесь проанализировать содержимое 9X_command-line-interface базы данных. Используйте аргумент -p
, чтобы 9X_cli изменить это.
Показать все, что есть в файле database.db
:
db_dump -p database.db
Перечислите базы данных в файле database.db
:
db_dump -l database.db
Показать только содержимое базы данных mydb
в файле database.db
:
db_dump -p -s mydb database.db
- должен быть главный ответ<p><span cla ...
Ответ #2
Ответ на вопрос: Изучение файлов Berkeley DB из CLI
Ознакомьтесь с пакетом db-utils. Если вы используете 9X_cli apt, вы можете установить его следующим 9X_berkeley-db образом: apt-get install db-util
(или apt-get install db4.8-util
или любая другая версия, которая 9X_command-line-interface у вас есть или которую вы предпочитаете.)
Дополнительные 9X_bdb ссылки:
- Пример того, как разобраться в выводе db4.8_dump или чего-то еще из этого паке ...
Ответ #3
Ответ на вопрос: Изучение файлов Berkeley DB из CLI
Я нашел ответ @strickli наиболее полезным, так 9X_cli как я не хотел добавлять какие-либо новые 9X_berkeley-db пакеты на машину с базой данных, в которой 9X_bdb я был. Однако файл db, который я читал, имел 9X_cli тип btree, а не хэш, поэтому мне пришлось 9X_berkeley-db использовать bsddb
# file foo.db
foo.db: Berkeley DB (Btree, version 9, native byte-order)
# python
>>> import bsddb
>>> for k, v in bsddb.btopen("**").iteritems():
... print k,v
...
Ответ #4
Ответ на вопрос: Изучение файлов Berkeley DB из CLI
Как упоминалось в других ответах, пакет 9X_command-line-interface db-utils (db4-utils под RHEL) имеет некоторые 9X_cli инструменты. Однако db_dump может быть бесполезным, поскольку 9X_berkeley-db вывод имеет формат «байтовое значение».
Для 9X_berkeley-db быстрого просмотра используйте python:
me@machine$ python
Python 2.7.3 (default, Sep 26 2013, 20:03:06)
>>> import dbhash
>>> for k, v in dbhash.open( ** ).iteritems(): print k, v
...
Обратите 9X_bdb внимание, что dbhash устарел, начиная с 9X_cli python 2.6.
Ответ #5
Ответ на вопрос: Изучение файлов Berkeley DB из CLI
Утилита db_hotbackup создает моментальные 9X_command-line-interface снимки «горячего резервирования» или «горячего 9X_berkeley-db переключения при отказе» сред баз данных 9X_command-line-interface Berkeley DB. Установите его следующим
apt-get install db-util
затем 9X_linux выполните следующую команду, чтобы выполнить 9X_linux горячее резервное копирование
db_hotbackup [-cDEguVv] [-d каталог_данных ...] [-h главная] [-l каталог_журнала] [-P пароль] -b резервный_каталог
Ответ #6
Ответ на вопрос: Изучение файлов Berkeley DB из CLI
После установки утилит db вы можете просто 9X_cli выполнить db_dump с файлом db.
Ответ #7
Ответ на вопрос: Изучение файлов Berkeley DB из CLI
Обратите внимание, что в первоначальном 9X_berkeley-db ответе говорится об использовании пакета 9X_command-line-interface «db-utils», но в примере показан правильный 9X_command-line-interface пакет «db-util». (без букв)
Ответ #8
Ответ на вопрос: Изучение файлов Berkeley DB из CLI
В Amazon Linux его можно установить с помощью:
yum install db43-utils
9X_cli
Ответ #9
Ответ на вопрос: Изучение файлов Berkeley DB из CLI
Питон 3from bsddb3 import db
import collections
d = db.DB()
d.open('./file.dat', 'dbname', db.DB_BTREE, db.DB_THREAD | db.DB_RDONLY)
d.keys()
collections.OrderedDict((k, d[k]) for k in d.keys())
from bsddb3 import db
import collections
d = db.DB()
d.open('./file.dat', 'dbname', db.DB_BTREE, db.DB_THREAD | db.DB_RDONLY)
d.keys()
collections.OrderedDict((k, d[k]) for k in d.keys())
9X_berkeley-db
-
7
-
3
-
10
-
6
-
7
-
22
-
5
-
7
-
3
-
3
-
7
-
4
-
17
-
1
-
3
-
9
-
1
-
3
-
2
-
7
-
2
-
3
-
1
-
1
-
2
-
1
-
2
-
3
-
4
-
2
-
1
-
2
-
4
-
15
-
10
-
15
-
5
-
12
-
3
-
8
-
6
-
5
-
5
-
4
-
8
-
5
-
3
-
10
-
21
-
2