我试图识别绑定到特定文件的块并向它们写入零。我发现了几种对磁盘上的可用空间执行此操作的方法,但到目前为止我还没有找到任何关于执行以下操作的建议:
这样做的目的是针对虚拟化系统。该系统能够对标识为相同的块进行重复数据删除。这用于减少驱动器上来宾操作系统使用的空间。
目前,这是通过dd将零写入驱动器上的可用空间来完成的。然而,这对 VMWare 系统有副作用,导致来宾操作系统驱动器使用它分配的整个磁盘空间,因为从那时起,所有字节都已写入系统。
我正在尝试在PySNMP中使用MIB文件.代码相当简单.没什么复杂的.只是试图在OID下获取信息.我正在使用的代码如下:
#!/usr/local/bin/python2.7
from pysnmp.smi import builder, view, error
from pysnmp.entity.rfc3413.oneliner import cmdgen
cmdGen = cmdgen.CommandGenerator()
mibBuilder = builder.MibBuilder()
mibPath = mibBuilder.getMibPath() + ( '/path/to/command/mibs', )
mibBuilder.setMibPath( *mibPath )
mibBuilder.loadModules(
'MIB-File',
)
mibView = view.MibViewController( mibBuilder )
errorIndication, errorStatus, errorIndex, \
varBindTable = cmdGen.nextCmd(
cmdgen.CommunityData( 'Name', 'Community' ),
cmdgen.UdpTransportTarget( ( 'IP Address', 161 ) ),
( ( '', 'serverName' ), ),
)
print varBindTable
Run Code Online (Sandbox Code Playgroud)
我知道放入此数据的数据是准确的,因为当我使用asynCommandGenerator.asyncNextCmd相同的数据时udpTransportTarget,CommunityData它的工作没有问题.此外,我看到的错误非常特定于MibBuilder组件.
我看到的错误是:
Traceback(最近一次调用最后一次):
文件"./snmpcollectortest.py",第11行,in
'NS-MIB-SMIv2的',
在loadModules中输入文件"/usr/lib/python2.7/site-packages/pysnmp-4.2.1-py2.7.egg/pysnmp/smi/builder.py",第221行
pysnmp.smi.error.SmiError:MIB模块"/path/to/command/mibs/MIB-File.py"加载错误:搜索路径中找不到MIB文件"ASN1.py [co]"
更新:
我发现我没有安装M2Crypto,这就是为什么我找不到ASN1.py. 不过我已经纠正了这一点,我仍然得到同样的错误.