Ejemplo n.º 1
0
def dnsCheckRun(dnsStatsDict):
    mrndc = rsRndc.rsRndc(rndc="/usr/local/sbin/rndc",conf="/Users/liuyang/rs/dns/rndc.conf")
    mydnsChecker=dnsChecker(mrndc)
    mydnsChecker.setup(dnsStatsDict)
    while(True):
        mydnsChecker.check()
        print dnsStatsDict
        time.sleep(5)
Ejemplo n.º 2
0
def main(argv):
    ######################
    #read config file
    ######################
    configfile = "config.ini"
    try:
        opts, args = getopt.getopt(argv, "hc:",["help", "config="])
    except getopt.GetoptError:
        usage()
        sys.exit(2)
    for opt, arg in opts:
        if opt in ("-h", "--help"):
            usage()
            sys.exit()
        elif opt in ("-c", "--config"):
            configfile = arg


    gv = config.globalValues()
    gv.Config(configfile)
#    attrs = vars(gv)
#    print ",  ".join("%s: %s" %item for item in attrs.items())

    #######################
    # get dns list
    #######################
    mydns = dnsInfo.Dns()
    mydns.setDB(gv.db_host, gv.db_user, gv.db_passwd, gv.db_port, gv.db_name)
    mydns.refreshList()

    dnslist = mydns.getDnsList()

    ########################
    # init checking dns state
    ########################
    dnsstats={}
    for dnsip in dnslist:
        dnsstats[dnsip] = [-1,[]]

#    dnsthread = threading.Thread(target=dnsMonitor.dnsCheckRun,args=(dnsstats,))
#    dnsthread.start()
    #mrndc = rsRndc.rsRndc(rndc="/usr/local/sbin/rndc",conf="/Users/liuyang/rs/dns/rndc.conf")
    mrndc = rsRndc.rsRndc(rndc=gv.bind_rndc, conf=gv.bind_conf)
    dnsthread = dnsMonitor.dnsCheckThread(dnsstats, mrndc, gv.dns_check_interval)
    dnsthread.start()

    #dnsMonitor.dnsCheckRun(dnsstats)

    ########################
    # init checking http state
    ########################
    mdict=dict.fromkeys(gv.ipList,-1)

#    httpthread=threading.Thread(target=httpMonitor.httpCheckerRun,args=(mdict,))
#    httpthread.start()

    httpthread = httpMonitor.httpCheckerThread(gv.ipdict, mdict, gv.web_check_interval)
    httpthread.start()

    dnsad = dnsAdjustment.dnsRsAdjustment(mrndc)
    try:
        while True:
            print dnsstats
            print mdict
            #如果http中可用的服务器诶有了,就不要做任何调整了
            httponlines,httpofflines = dnsad.dnsAdjustment(dnsstats,mdict)
            if(len(httponlines)>0 and len(httpofflines)>0):
                mydns.updatefactor(httponlines[0],httpofflines)

            #需要调整数据库中的信息。

            time.sleep(int(gv.adjust_interval))
    except:
        dnsthread.join()
        httpthread.join()