#!/usr/bin/env python # Monitor Interfaces, send hb msg when add changes import time, os, sys 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)