Linux 스크립트를 사용하여 snmpwalk를 실행하는 방법

Linux 스크립트를 사용하여 snmpwalk를 실행하는 방법

기본적으로 저는 쉘 스크립팅 분야가 처음이고 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}

(커뮤니티 문자열과 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 도구에서 공유하는 모든 옵션을 나열하는 매뉴얼 페이지)를 확인하면 옵션에 다음과 같이 표시됩니다 -v.

-v 1 | 2c | 3

사용할 프로토콜 버전을 지정하십시오: 1(RFC 1155-1157), 2c(RFC 1901-1908) 또는 3(RFC 2571-2574). [...]

따라서 -v2cSNMP 프로토콜 버전만 지정하십시오.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결과 변수의 값에는 공백, 세미콜론, 또는 쌍 쉘은 다른 문자에 대해 특별한 의미를 갖기 때문에 실수로 부분 값을 명령으로 실행하려는 시도를 피하기 위해 변수 값을 사용할 때 따옴표를 사용하는 것이 더 안전합니다.

관련 정보