기본적으로 저는 쉘 스크립팅 분야가 처음이고 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). [...]
따라서 -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
결과 변수의 값에는 공백, 세미콜론, 또는 쌍 쉘은 다른 문자에 대해 특별한 의미를 갖기 때문에 실수로 부분 값을 명령으로 실행하려는 시도를 피하기 위해 변수 값을 사용할 때 따옴표를 사용하는 것이 더 안전합니다.