From 0fe3fbdcc221dad4c2a9e868d6978e68b4cdde10 Mon Sep 17 00:00:00 2001 From: andreas Date: Wed, 28 Mar 2012 20:15:12 +0000 Subject: [PATCH] script to monitor interface address changes --- monif | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100755 monif diff --git a/monif b/monif new file mode 100755 index 0000000..ee3e7db --- /dev/null +++ b/monif @@ -0,0 +1,46 @@ +#!/usr/bin/env python + +# Monitor Interfaces, send hb msg when add changes +import time, os, sys + +SLEEP=60 +SRV="colo2.wapanafa.org" +DBG=0 + +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() + 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') + for l in f.readlines(): + r=l.split() + if DBG > 1: print "x2", r + if len(r) == 0 or r[0] != 'inet': + continue + if r[1].find('addr:') == 0: + iaddr=r[1][5:] + else: + iaddr=r[1] + if iaddr != addrs[I]: + msg='hbc -m "ifadd %s %s" %s' % (I, iaddr, SRV) + if DBG: print msg + else: os.system(msg) + addrs[I]=iaddr + f.close() + + time.sleep(SLEEP)