我的硬盘坏了,一些 inode 被修复了,例如
'..' in /zeocluster/var/blobstorage/0x00/0x00 (...) is <the NULL inode> (0), should be '....'. Fix (y) ?
我如何确认一切正常。有没有类似blobfsck
ZODB/Plone 的东西?
--
转载自:https://stackoverflow.com/questions/25895033/how-to-check-the-blobstorage-in-plone-zodb
答案1
类似。尝试一下zodbdgc 的源代码:
- https://pypi.python.org/pypi/zc.zodbdgc
- http://zodborg.readthedocs.org/en/latest/documentation/articles/multi-zodb-gc.html
它提供了一个脚本,可以检查所有引用的对象(包括所有 blob)是否仍然存在。但是,它无法验证 blob 内容是否正常(它会对丢失的 blob 文件发出警报,但会默默接受空的/损坏的但仍然存在的 blob 文件)。
文档展示了如何将其包含在 buildout 中
[buildout]
parts =
...
zodbdgc
[zodbdgc]
recipe = zc.recipe.egg
eggs = zc.zodbdgc
以及它需要什么样的配置文件——它不会parts/instance/zope.conf
直接接受你的,但你可以复制并精简一个只包含
<zodb main> # renamed from zodb_db main
<blobstorage>
blob-dir /.../var/blobstorage
# FileStorage database
<filestorage>
path /.../var/filestorage/Data.fs
</filestorage>
</blobstorage>
</zodb>
然后运行
./bin/multi-zodb-check-refs parts/instance/copy_of_zope.conf
如果缺少一个 blob,你会看到类似
!!! main 4938 ?
POSKeyError: 'No blob file'
并且文档可能会帮助您手动解决问题。