My script sometimes raport an errors when works, what I do wrong
File "/current/chudini/cga4236ver5dhcp1.py", line 73, in snmp_set = session.set('.1.3.6.1.2.1.69.1.3.3.0','1') File "/usr/local/lib/python3.8/dist-packages/easysnmp/session.py", line 348, in set success = interface.set(self, varlist) SystemError: returned NULL without setting an error
My script:
#!/usr/bin/python3
import pymysql.cursors
import warnings
import pymysql
import mysql.connector
from mysql.connector import Error
import os
from easysnmp import Session
l1=[]
l2=[]
try:
connection= mysql.connector.connect(host= "IP", database = 'database', user='user' , password = 'password')
if connection.is_connected():
db_Info = connection.get_server_info()
print("Connected to MySQL Server version ", db_Info)
cursor = connection.cursor()
cursor.execute("select ipaddr from docsis_modem where serialnum like 'CGA4236%' and ipaddr like '10%';")
records = cursor.fetchall()
print("Total number of CM IP in table: ", cursor.rowcount)
#print("\nPrinting each row<br>")
for row in records:
l1.append(row[0])
except Error as e:
print("Error while connecting to MySQL", e)
finally:
if connection.is_connected():
cursor.close()
connection.close()
print("MySQL connection is closed")
with warnings.catch_warnings():
warnings.simplefilter("ignore")
if os.path.exists('/current/chudini/previous_list.txt'):
with open("/current/chudini/previous_list.txt", "r") as f2:
for line in f2:
x = line[:-1]
l2.append(x)
c = [i for i in l1 if i not in l2]
licznik =0
for element in c:
licznik +=1
#print(liczniki)
try:
session = Session(hostname = element, community = 'community', version =2, retries=0 )
snmp_get = session.get('.1.3.6.1.2.1.69.1.3.5.0')
result = snmp_get.value.encode('ascii')
except:
print(licznik,'. No response CM of IP %s ' %element)
continue
if b'220425' in result:
print(licznik, '. Software in CM of IP %s OK' %element)
with open("/current/chudini/previous_list.txt", "a") as f2:
f2.write("%s\n" %element)
else:
print(licznik, '. Software in CM of IP %s !!!!!!!!WRONG!!!!!' %element)
# .1.3.6.1.2.1.69.1.3.3.0 i 1
try:
snmp_set = session.set('.1.3.6.1.2.1.69.1.3.3.0','1')
with open("/var/log/cga4236softproblem.txt", "a") as f:
f.write(str(element)+'\n')
except:
with open("/var/log/cga4236softproblem.txt", "a") as f:
f.write(str(element) + ' Something Wrong\n')