SNMP에 익숙하지 않고 OID를 설정하기 때문에 조금만 나와주세요.SNMP가 정수로 숫자를 표시하도록하십시오.
rxkBps=`sar -n DEV 1 295 | tail -n1 | awk '{print $5}'`
rxMbps=$(echo "scale=2;$rxkBps/128" | bc -l)
echo $rxMbps >./rxMbps.log
exit
그 숫자는 소수 (: 0.06 전은) 항상 : 나는 로그 파일 (한 예)에 SAR의 값을 가지고 그들을 배치 두 개의 스크립트가 있습니다. 은 snmpd.conf에서
는 나는이 예제 Get_rxMbps에 해당 번호를 취하고에 의해 표현의 OID와 연관 두 스크립트에 대한 섹션을 확장 추가했습니다 :
extend Get_rxMbps /bin/sh /usr/local/bin/Get_rxMbps.sh
내가 NET-의 SNMP 통해 snmpwalk를 실행 EXTEND-MIB :: nsExtendObjects 정보를 얻었지만 문자열로 보았고 모니터링 소프트웨어가 문자열 정보를 변환하거나 사용할 수 없습니다.
NET-SNMP-EXTEND-MIB::nsExtendCommand."Get_rxMbps" = STRING: /bin/sh
NET-SNMP-EXTEND-MIB::nsExtendArgs."Get_rxMbps" = STRING: /usr/local/bin/Get_rxMbps.sh
NET-SNMP-EXTEND-MIB::nsExtendInput."Get_rxMbps" = STRING:
NET-SNMP-EXTEND-MIB::nsExtendCacheTime."Get_rxMbps" = INTEGER: 5
NET-SNMP-EXTEND-MIB::nsExtendExecType."Get_rxMbps" = INTEGER: exec(1)
NET-SNMP-EXTEND-MIB::nsExtendRunType."Get_rxMbps" = INTEGER: run-on-read(1)
NET-SNMP-EXTEND-MIB::nsExtendStorage."Get_rxMbps" = INTEGER: permanent(4)
NET-SNMP-EXTEND-MIB::nsExtendStatus."Get_rxMbps" = INTEGER: active(1)
NET-SNMP-EXTEND-MIB::nsExtendOutput1Line."Get_rxMbps" = STRING: .83
NET-SNMP-EXTEND-MIB::nsExtendOutputFull."Get_rxMbps" = STRING: .83
NET-SNMP-EXTEND-MIB::nsExtendOutNumLines."Get_rxMbps" = INTEGER: 1
NET-SNMP-EXTEND-MIB::nsExtendResult."Get_rxMbps" = INTEGER: 0
NET-SNMP-EXTEND-MIB::nsExtendOutLine."Get_rxMbps".1 = STRING: .83
나는 이것에 새로 온 사람이 나뿐만 아니라 그것을 위해 열려있어 더 좋은 방법입니다,하지만 난 볼 정수가 아닌 문자열로 해당 번호를 사용하는 SNMP가 필요합니다 그래서 만약 다른 사람의 작품을 상속 .
SNMP가 어떤 종류의 소수점 (또는 부동 소수점) 숫자도 지원하지 않는다는 것을 아는 것은 흥미로운 일입니다. 아마도 BER에서 인코딩이 복잡하기 때문일 수 있습니다. 그 점을 감안할 때 10 진수를 문자열로 보내는 것이 전적으로 적합하다고 생각합니다. 그것은 수신기 끝에서 변환해야합니다. – Jolta