#!/usr/bin/python import string import os def readfile(filename): array = {} datei = open(filename,'r') zeilen = datei.readlines() datei.close() for zeile in zeilen: var = string.split(zeile) if zeile.startswith('success'): array['success'] = int(var[1]) elif zeile.startswith('referral'): array['referral'] = int(var[1]) elif zeile.startswith('nxrrset'): array['nxrrset'] = int(var[1]) elif zeile.startswith('nxdomain'): array['nxdomain'] = int(var[1]) elif zeile.startswith('recursion'): recursion = var[1] array['recursion'] = int(var[1]) elif zeile.startswith('failure'): array['failure'] = int(var[1]) return array def writefile(filename,array): openfile = open(filename,'w') content = '' content = content + "success " + str(array['success']) + "\n" content = content + "failure " + str(array['failure']) + "\n" content = content + "recursion " + str(array['recursion']) + "\n" content = content + "referral " + str(array['referral']) + "\n" content = content + "nxrrset " + str(array['nxrrset']) + "\n" content = content + "nxdomain " + str(array['nxdomain']) + "\n" openfile.write(content) openfile.close() def calcq(new,old): if new < old: data = new else: data = new - old return data os.system("/usr/sbin/rndc stats") data = {} olddata = readfile('/var/bind/oldnamed.stats') newdata = readfile('/var/bind/named.stats') data['success'] = calcq(newdata['success'],olddata['success']) data['failure'] = calcq(newdata['failure'],olddata['failure']) data['recursion'] = calcq(newdata['recursion'],olddata['recursion']) data['referral'] = calcq(newdata['referral'],olddata['referral']) data['nxrrset'] = calcq(newdata['nxrrset'],olddata['nxrrset']) data['nxdomain'] = calcq(newdata['nxdomain'],olddata['nxdomain']) print "%s:%s:%s:%s:%s:%s" % (data['success'], data['failure'], data['recursion'], data['referral'], data['nxrrset'], data['nxdomain']) writefile('/var/bind/oldnamed.stats',newdata) os.system("/bin/cat /dev/null > /var/bind/named.stats")