通过使用SNMP协议的SNMP命令运行脚本可以在脚本独立运行时提供不同的输出

我想通过SNMP命令执行脚本。因此,对于该脚本,我已经在/etc/snmp文件夹下的snmpd.confconfiguration了OID

我的脚本看起来像工作只是将"text"redirect到output.txt文件,然后打印在控制台上执行的脚本。

 #!/usr/bin/ksh Input_path="$HOME/input.txt" Out_Path="$HOME/output.txt" #I have to take the line_num from output.txt which is actually number of line present in output.txt line_num=`wc -l <$out` #after that i need to take that line from INPUT file line=`head -$a $Input_path | tail -1 ` #i need to uppend data to 1 kb for that i am using typset command typeset -L1024 line #I am increasing value of a a=`expr $a + 1` #same i am echo in file so at this point number of line in file will increase by 1 echo $a >> $Out_Path #this is the final output which i want . echo -e "$line\n" 

产量

如果我从节点使用snmpwalk命令… 1

snmpwalk命令的输出是

一个

并更新output.txt文件是1 2

snmpwalk命令的输出是

C

并更新output.txt文件是1 2 3 4

snmpwalk命令的输出是

C

并更新output.txt文件是1 2 3 4 5

这意味着我得到一个,C,E …但我需要一个,B,C,D,E

我正在做这种types的处理,因为data.txt中的数据多于1 kb,并且我无法在snmpget命令中获取超过1 kb的logging,这就是为什么我正在执行此过程以获取整个数据。

a)尝试将“shebang”行( #!/bin/sh )作为脚本的第一行

b)尝试设置文件的完整路径,如echo "text" > /tmp/output.txt

c)确保你写的路径可以通过snmpd( /tmp/通常是)的UID写入,