Skip to content

Instantly share code, notes, and snippets.

@juliobm
Created May 5, 2015 14:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save juliobm/c472c7d5332144e15cef to your computer and use it in GitHub Desktop.
Save juliobm/c472c7d5332144e15cef to your computer and use it in GitHub Desktop.
Detectar y avisar de equipos caídos en la red mediante ping
#-------------------------------------------------------------------------------
# Name: ping_nodos_vitales
# Purpose: ping a los puntos de acceso de radiofrecuencia
# y al router netlan
# y a los concentradores
# cada 5 min de forma aleatoria
# solounocadavez = random.randrange(151,153)
#
# Author: julio
#
# Created: 20/06/2011
# Copyright: (c) julio 2011
# Licence: <your licence>
#-------------------------------------------------------------------------------
#
import subprocess, os
import random,datetime, time
from envia_email import mandaemail
comodin = '127.0.0.1'
concen_va = '10.xx.y.50'
concen_za = '10.xx.z.50'
router_netlan_va = '10.xx.y.65'
router_netlan_za = '10.xx.z.65'
router_fedicom = '10.xx.y.1'
router_correo = '10.xx.y.66'
pa_1 = '10.xx.y.151'
pa_2 = '10.xx.y.152'
controla_dom = '10.xx.y.38'
ip_fedicom = '214.xx.y.143'
ip_correo = '81.xx.y.216'
ip_knapp = '211.xx.y.189'
fic_ping = 'ping_vitales_ultimo.txt'
fic_log = "ping_vitales_log.txt"
fich_error = open('ping_vitales_error.txt','a')
email = 'si'
nodos_vitales = [concen_va, concen_za, router_netlan_va, router_netlan_za, router_fedicom, pa_1, pa_2, controla_dom, ip_fedicom, ip_correo, ip_knapp]
solounocadavez = random.sample(nodos_vitales, len(nodos_vitales))
puntosacceso = solounocadavez
dt = datetime.datetime.now()
for host in puntosacceso:
ejecuta = ' ping -n 3 '+host
ping = subprocess.call(ejecuta,shell=True,stdout=open(fic_ping,'w'),stderr = fich_error)
salida = open(fic_ping,'r').read()
if salida.find('100% perdidos') <> -1:
fich_log =open(fic_log,"a+")
fich_log.write('nodo vital caido '+ str(host) + ' '+ str(dt) + '\n')
fich_log.close()
# flag para no repetir
fic_flag = 'ping_vitales_caido_'+ host.replace(".","_") + '__' + dt.strftime("%Y%m%d_%H")+ 'h.txt'
if (email=='si') and (os.path.exists(fic_flag)==False):
fich_flag=open(fic_flag,"w+")
fich_flag.close()
texto=salida
adjunto=''
asunto = host.replace(".","_") + '_caido_' + dt.strftime("%Y%m%d_%Hh%M")
mandaemail('remitente','passw','smtp',['aquien@quieras.com'],asunto,texto,adjunto)
time.sleep(1) # damos unos segundos para respirar por si acaso
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment