首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从shell脚本中获取随机数,并使用snmpcommad (SNMP协议)将其存储到文件中

从shell脚本中获取随机数,并使用snmpcommad (SNMP协议)将其存储到文件中
EN

Stack Overflow用户
提问于 2012-12-12 09:25:25
回答 1查看 1.1K关注 0票数 0

我在通过snmpwalk命令运行脚本时遇到了问题,该命令应该将随机数重定向到输出文件中:

我在snmpd.conf undet /etc/snmp/ as exec .1.3.6.1.4.1.99.1.53.1006 script.sh.sh /root/my_文件夹/script.sh中为脚本配置了OID

我的剧本是:

代码语言:javascript
复制
#!/usr/bin/ksh 

Out_Path="$HOME/output.txt" 

echo $RANDOM >> $Out_Path
--------------------------

现在,我执行snmpwalk命令: snmpwalk -t 10 -v 1 -c public 127.0.1.1.1.3.6.1.1.1.99.1.53.1006,在输出文件中,我得到的是2个随机数,而不是1。我期望output.txt文件中只存在一个随机数。有人能解释这种行为或某种解决办法吗?

实际问题:

我正在解释我想要实现的目标,我需要通过snmpget命令执行一个脚本。

问题1:当我使用SNMPGET命令时,脚本执行,响应(内部)就会满(超过1KB),但是在将响应保存到一个文件中之后,我将执行echo $line,这将占用文件的行,正如我所期望的那样,它应该向我显示整个数据。(但我只能获取1 KB的数据)。

问题2:为了解决问题1,我采用了一种新的设计,就像从1 OID (脚本)开始,我在file.After中获得了整个数据,我正在使用新的OID执行一个新脚本,它将获取1条记录(1KB),修改现有数据并像这样更新data.So,我将使用不同的OID多次使用snmpwalk执行第二个脚本,所以当我试图更新reord(文件)时,我会得到所有的record.But,然后在一次测试中,它将删除2个数据,因为这个原因,我发布了这个问题。(在一个snmpwalk命令中有2次随机数KB )。

我希望你现在理解这个问题,但是如果你想要更多的细节,我会解释你的。

EN

回答 1

Stack Overflow用户

发布于 2012-12-19 12:19:30

snmpwalk命令由重复的snmpgetnext命令组成,只要子树中有要返回的内容。我认为在这种情况下,两个getnext请求在单次snmpwalk调用后被发送,以确定没有更多的数据可供检索。当然,请使用tcpdump或一些wireshark解决方案嗅探流量。顺便说一句。您确定-t10是一个正确的超时吗?我将显式重复选项设置为0,以避免重传(-r0选项)。

您要做的是对上面提到的OID执行snmp /getnext请求,以执行脚本并将其输出作为SNMP响应返回。我认为1KB问题是由其他原因引起的--在构建大型响应时,它似乎不是SNMP代理问题。请尝试遵循SNMPv1命令(如果您也有SNMPv3访问权限,请让我知道):

代码语言:javascript
复制
snmpget -v1 -t25 -r0 -cprivate <IP> .1.3.6.1.4.1.99.1.53.1006

代码语言:javascript
复制
snmpgetnext -v1 -t25 -r0 -cprivate <IP> .1.3.6.1.4.1.99.1.53.1005

对于snmpgetnext请求,请注意OID结尾处的1005八进制。这样的OID可能不存在,getnext应该正确地访问1006,因为它是第一个,存在的OID在1005之后。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13836558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档