pingmon update
Hace un tiempo hice un script para monitorear mi conexión a internet usando ping.
Le hice algunos cambios menores, y ahora muestra datos aunque no haya llenado toda la ventana.
Esta es la última versión
#!/usr/bin/env python3 import subprocess import sys import re SEQ_NUMBER_RE = re.compile(r".*icmp_seq=(\d+) ttl.*") def report(probes, count): if len(probes) < count: count = len(probes) return str ( count - sum(probes[-count:]) ) def monitor(ip): probes = [] ping = subprocess.Popen(["ping", ip], stdout=subprocess.PIPE) stdout = ping.stdout stdout.readline() # Ignore first line line_count = 0 last_seq_number = 0 while True: line_count +=1 line = stdout.readline().decode() try: seq_number = int( SEQ_NUMBER_RE.match(line).group(1)) except Exception: print( "!!! Failed while parsing line " + line ) seq_number = last_seq_number probes.extend([0] * (seq_number - last_seq_number - 1)) probes.append(1) print( "(%s) 10:%s 100:%s 1000:%s 10000:%s" % ( line_count, report(probes, 10), report(probes, 100), report(probes, 1000), report(probes, 10000) ) ) probes = probes[-10000:] # Keep memory usage bounded last_seq_number = seq_number def main(argv): monitor(argv[1]) if __name__ == '__main__': main(sys.argv)
No hay comentarios.:
Publicar un comentario