Вопрос

У меня есть набор файлов Berkeley DB в моей файловой системе Linux, которые я хотел бы изучить.

Какие полезные инструменты существуют для получения краткого обзора содержимого?Я могу писать скрипты на Perl, которые используют модули BDB для их изучения, но я ищу какую-нибудь утилиту CLI, которая могла бы заглянуть внутрь, не начиная писать скрипты.

Это было полезно?

Решение

Посмотрите на db-утилиты посылка.Если вы используете apt, вы можете установить его следующим образом: apt-get install db4.4-util (или apt-get install db4.8-util или любую другую версию, которая у вас есть или которую вы предпочитаете.)

Дополнительные ссылки:

Другие советы

Используйте программу db_dump . Он содержится в пакете core / db (Arch), db-util (Debian, Ubuntu), sys-libs / db (Gentoo обратите внимание, что здесь двоичный файл называется db4.8_dump или любой другой версией, которую вы используете).

В некоторых системах страницы руководства не установлены, в этом случае документацию можно найти . По умолчанию db_dump выводит некоторые шестнадцатеричные числа, что не очень полезно, если вы пытаетесь проанализировать содержимое базы данных. Используйте аргумент -p , чтобы изменить это.

Показать все, что находится в файле database.db :

db_dump -p database.db

Список баз данных в файле database.db :

db_dump -l database.db

Показывать только содержимое базы данных mydb в файле database.db :

db_dump -p -s mydb database.db

Я нашел ответ @ strickli наиболее полезным, поскольку я не хотел добавлять какие-либо новые пакеты на компьютер с базой данных, на которой я находился. Однако файл БД, который я читал, имел тип btree, а не хэш, поэтому мне пришлось использовать 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
...

Как упоминалось в других ответах, пакет db-utils (db4-utils под RHEL) имеет несколько инструментов. Однако db_dump может быть бесполезным, поскольку вывод имеет формат 'bytevalue'.

Для быстрого и полезного просмотра используйте 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
...

Обратите внимание, что dbhash устарел с python 2.6.

Утилита db_hotbackup создает " горячую резервную копию " или «горячее переключение при сбое» снимки сред баз данных Berkeley DB. Установите его с помощью следующего

apt-get install db-util

затем выполните следующую команду, чтобы получить горячее резервное копирование

db_hotbackup [-cDEguVv] [-d data_dir ...] [-h home]         [-l log_dir] [-P пароль] -b backup_dir

После установки утилит db вы можете просто выполнить db_dump в файле db.

Обратите внимание, что в первоначальном ответе написано "использовать db-utils" пакет, но в примере показан правильный «db-util» пакет. (без "s")

В Amazon Linux вы можете установить его с помощью:

yum install db43-utils

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top