SCRIPT PARA HACER PING A UNA LISTA DE IP's.
Publicado por Carl0701 (19 intervenciones) el 24/02/2017 08:23:59
Hola foreros:
Necesito hacer ping de forma periodica a una lista de ip´s incluida en un fichero de texto y actualizar una tabla sql de forma consecuente con el resultado. Tambien me genera un log con las ip's erroneas.
Para ello, utilizo el siguiente codigo:
El fichero ip_file.lst con la relación de ip´s a chequear tiene el siguiente formato
El script chequea la lista de ip´s satisfactoriamente pero la tabla no se actualiza, siendo los datos de configuración son los correctos.
¿Alguna idea...?
Necesito hacer ping de forma periodica a una lista de ip´s incluida en un fichero de texto y actualizar una tabla sql de forma consecuente con el resultado. Tambien me genera un log con las ip's erroneas.
Para ello, utilizo el siguiente codigo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import MySQLdb
import subprocess
import os
import logging
import datetime
'''
ip_file.lst contains ip address in following format
192.168.1.1
192.168.1.2
'''
#Enable debug logging into log
DEBUG=True
if(DEBUG):
logging.basicConfig(format='%(asctime)s %(message)s',filename='/var/www/html/ipScanFlist.log', level=logging.DEBUG)
def debug(message):
logging.debug(message)
host = "localhost"
user = "nameuser"
passw = "password"
base = "database"
db = MySQLdb.connect(host,user,passw,base)
cur = db.cursor()
with open('ip_file.lst','r') as file:
for ip in file:
result=subprocess.Popen(["ping", "-c", "1", "-n", "-W", "2", ip],
stdout=file, stderr=file).wait()
if result:
print ip, "inactive"
debug(ip)
cur.execute("UPDATE devices SET devAuth=0 WHERE devIp='%s'" %(ip))
else:
print ip, "active"
cur.execute("UPDATE devices SET devAuth=1 WHERE devIp='%s'" %(ip))
db.close()
El fichero ip_file.lst con la relación de ip´s a chequear tiene el siguiente formato
1
2
3
4
5
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
El script chequea la lista de ip´s satisfactoriamente pero la tabla no se actualiza, siendo los datos de configuración son los correctos.
¿Alguna idea...?
Valora esta pregunta


0