Добрый день помогите пожалуйста. Ситуация следующая. ubuntu 22.04 на расбери пи 2, установлен SNMP, служба работает. файл конфигурации
/etc/snmp/snmpd.conf
rocommunity public
sysLocation myCompany
sysContact Me <unnnder@mail.ru>
sysServices 72
agentaddress udp:161,udp6:[::1]:161
rwuser piuser authpriv
view all included .1
view all included .1.3.6.1.4.1.53864
view all included .1.3.6.1.2.1.25.1.8
#pass .1.3.6.1.2.1.25.1.8 /usr/local/bin/test_7
#work
pass .1.3.6.1.2.1.25.1.8.2 /bin/python3 /usr/local/bin/snmpCpuTemp
pass_persist .1.3.6.1.4.1.53864 /bin/python3 /usr/local/bin/gpio_snmp_pp.py
#pass 1.3.6.1.2.1.25.1.8 /bin/sh /usr/local/bin/SNMP-Temperature-Sensor-CPU
pass 1.3.6.1.4.1.53865 /usr/local/bin/gpio_snmp.py
если я запускаю скрипт
pass .1.3.6.1.2.1.25.1.8.2 /bin/python3 /usr/local/bin/snmpCpuTemp
он работает, при этом даже если поменять OID этот скрипт работает
user@raspberrypi:/usr/local/bin$ sudo systemctl restart snmpd
user@raspberrypi:/usr/local/bin$ snmpget -v3 -u piuser -l authPriv -a SHA -A myAuthPass -x AES -X myPrivPass localhost .1.3.6.1.2.1.25.1.8.3
HOST-RESOURCES-MIB::hrSystem.8.1 = Gauge32: 46
вот содержание скрипта
import sys
from subprocess import check_output
def console(cmd):
cmd=cmd.split()
return check_output(cmd).decode("utf-8").rstrip()
temp_cmd="cat /sys/class/thermal/thermal_zone0/temp"
if sys.argv[1] == "-g":
print(".1.3.6.1.2.1.25.1.8.1")
print("Gauge32")
temp=int(console(temp_cmd))
temp = temp/1000
print(temp)
exit()
но когда я меняю в файле конфигурации
pass .1.3.6.1.2.1.25.1.8 /usr/local/bin/test_7
#work
#pass .1.3.6.1.2.1.25.1.8.2 /bin/python3 /usr/local/bin/snmpCpuTemp
перестает работать
user@raspberrypi:/usr/local/bin$ snmpget -v3 -u piuser -l authPriv -a SHA -A myAuthPass -x AES -X myPrivPass localhost .1.3.6.1.2.1.25.1.8.1
HOST-RESOURCES-MIB::hrSystem.8.1 = No Such Instance currently exists at this OID
вот содержание скрипта
#!/usr/bin/env python3
import sys
OID1 = ".1.3.6.1.2.1.25.1.8.1"
OID2 = ".1.3.6.1.2.1.25.1.8.2"
line = sys.stdin.readline().strip()
if not line:
sys.exit(1)
parts = line.split()
command = parts[0]
oid = parts[1] if len(parts) > 1 else ""
if command == "get":
if oid == OID1:
print(OID1)
print("string")
print("test_7")
sys.exit(0)
elif oid == OID2:
print(OID2)
print("integer")
print("15")
sys.exit(0)
else:
sys.exit(1)
if command == "getnext":
if oid < OID1:
print(OID1)
print("string")
print("test_7")
sys.exit(0)
elif oid < OID2:
print(OID2)
print("integer")
print("15")
sys.exit(0)
else:
sys.exit(1)
sys.exit(1)
сам по себе скрипт работает
user@raspberrypi:/usr/local/bin$ snmpget -v3 -u piuser -l authPriv -a SHA -A myAuthPass -x AES -X myPrivPass localhost .1.3.6.1.2.1.25.1.8.1
HOST-RESOURCES-MIB::hrSystem.8.1 = No Such Instance currently exists at this OID
user@raspberrypi:/usr/local/bin$ echo "get .1.3.6.1.2.1.25.1.8.1" | /usr/local/bin/test_7
.1.3.6.1.2.1.25.1.8.1
string
test_7
подскажите пожалуйста в чем может быть проблема?
