#!/usr/bin/env python3 # Monitor Interfaces, send hb msg when add changes import time import os SLEEP = 60 SRV = "colo2.wapanafa.org" DBG = 0 home = os.environ.get("HOME", "/var/tmp") HBC = "%s/bin/hbc" % home IFS = [] f = os.popen("/sbin/ifconfig -a 2>/dev/null", "r") for l in f.readlines(): if len(l) > 1 and not l[0] in [" ", "\t"]: r = l.split() if DBG: print(r) if r[0][-1] == ":": r[0] = r[0][:-1] if r[0][:2] == "lo": continue IFS.append(r[0]) if DBG: print(IFS) addrs = {} for I in IFS: addrs[I] = "" while 1: for I in IFS: f = os.popen("/sbin/ifconfig %s 2>/dev/null" % I, "r") ifaddrs = [] for l in f.readlines(): r = l.split() if DBG > 1: print("x2", r) if len(r) == 0 or (r[0] != "inet" and r[0] != "inet6"): continue if r[1].find("addr:") == 0: ifaddr = r[1][5:] else: ifaddr = r[1] ifaddrs.append(ifaddr) if ifaddrs != [] and ifaddrs != addrs[I]: msg = '%s -m "ifadd %s %s" %s' % (HBC, I, ",".join(ifaddrs), SRV) if DBG: print(msg) else: os.system(msg) addrs[I] = ifaddrs f.close() time.sleep(SLEEP)