如何使用linux脚本运行snmpwalk

如何使用linux脚本运行snmpwalk

基本上我是 shell 脚本领域的新​​手,我想使用 linux 脚本运行 snmpwalk

这是我创建的脚本:

echo "Starting SnmpWalk"

 var = `snmpwalk -v2c CS IP 1.3.6.1.4.1.1563.10.1.4.2.1.1.1.1.7`
 
 echo {var}

(我已进入社区 String 和 Ip 正确。)

但我收到错误如下:

Starting SnmpWalk
No community name specified.
USAGE: snmpwalk [OPTIONS] AGENT [OID]
  Version:  5.9.1
  Web:      http://www.net-snmp.org/
  Email:    [email protected]

答案1

您可能会假设-v2c在命令行上表示-v2+ -c,即指定 SNMP 版本 2 和团体名称的选项。

不幸的是,这是不正确的:如果您检查man snmpcmd(=列出了大多数 Net-SNMP 工具共享的所有选项的手册页),它会在 option 上这样说-v

-v 1 | 2c | 3

指定要使用的协议版本:1 (RFC 1155-1157)、2c (RFC 1901-1908) 或 3 (RFC 2571-2574)。 [...]

所以,-v2c只指定SNMP协议版本2c,并且您需要一个单独的选项-c来指定社区字符串,如下所示:

#!/bin/sh
echo "Starting SnmpWalk"
var=$(snmpwalk -v2c -c "CS" IP 1.3.6.1.4.1.1563.10.1.4.2.1.1.1.1.7)
echo "$var"

(最好使用$(...)构造而不是反引号,如果您的社区字符串包含任何特殊字符,则需要将其加引号。赋值不能包含空格。此外,结果变量var的值可以包含空格、分号或对 shell 有特殊含义的其他字符,因此在使用变量值时使用引号会更安全,以避免意外尝试将部分值作为命令执行。)

相关内容