提问人:mercutio 提问时间:9/1/2008 更新时间:2/24/2022 访问量:74016
从 CLI 检查 Berkeley DB 文件
Examining Berkeley DB files from the CLI
问:
我的 Linux 文件系统上有一组 Berkeley DB 文件,我想检查一下。
有哪些有用的工具可以快速了解内容?我可以编写使用 BDB 模块来检查它们的 Perl 脚本,但我正在寻找一些 CLI 实用程序,以便能够在无需开始编写脚本的情况下查看内部。
答:
查看 db-utils 软件包。如果您使用 apt,您可以使用以下命令安装它:(或您拥有或喜欢的任何版本。apt-get install db-util
apt-get install db4.8-util
附加链接:
- http://rpmfind.net/linux/rpm2html/search.php?query=db-utils
- https://packages.ubuntu.com/search?suite=default§ion=all&arch=any&keywords=db-util&searchon=names
- db4.4_dump 页
评论
db-util
db_hotbackup实用程序创建 Berkeley DB 数据库环境的“热备份”或“热故障转移”快照。使用以下命令进行安装Install it with the following
apt-get 安装 db-util
然后运行以下命令进行热备份
db_hotbackup [-cDEguVv] [-d data_dir ...][-h 首页] [-l log_dir][-P 密码] -b backup_dir
一旦你安装了 db utils,你就可以简单地对 db 文件进行db_dump。
请注意,最初的答案是使用“db-utils”包,但示例显示了正确的“db-util”包。(不带“s”)
正如其他答案中提到的,db-utils 包(RHEL 下的 db4-utils)有一些工具。但是,db_dump可能没有帮助,因为输出是“字节值”格式。
对于快速的肮脏查看器,请使用 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
...
请注意,自 python 2.6 起,dbhash 已弃用。
我发现@strickli的答案是最有帮助的,因为我不想将任何新软件包添加到我所在的数据库的机器上。但是,我正在读取的 db 文件的类型是 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
...
在 Amazon Linux 下,您可以使用以下命令进行安装:
百胜餐饮集团安装 db43-utils
使用该程序。它包含在软件包(Arch)、(Debian、Ubuntu)、(Gentoo,请注意,这里调用二进制文件或你使用的任何版本)中。db_dump
core/db
db-util
sys-libs/db
db4.8_dump
在某些系统上,没有安装手册页,在这种情况下,可以在此处找到文档。默认情况下,输出一些十六进制数字,如果您尝试分析数据库的内容,这实际上没有用。使用参数来更改此设置。db_dump
-p
显示文件数据库 .db
中的所有内容:
db_dump -p database.db
列出文件 database.db
中的数据库:
db_dump -l database.db
在文件 database.db
中仅显示数据库 mydb
的内容:
db_dump -p -s mydb database.db
评论
蟒蛇 3
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())
上一个:求数最大质因数的算法
下一个:为什么我需要使用流行的框架?
评论