用于检查主机是否处于活动状态的脚本

时间:2012-03-17 16:33:56

标签: python network-programming while-loop

我刚才写了这个剧本。脚本的一部分,首先检查主机名(sys.argv[1])是否在列表中(k)。然后向主机发送ECHO_REQUEST(即ping)并继续发送接下来的80秒。如果没有回应在那段时间之后,它宣告主机失效。

k = ['mserv', 'vserv', 'cpde', 'cpdg']

for j in k:
    if sys.argv[1] not in k:
        print "Host [%s] doesn't exist!!\n" % sys.argv[1]
        sys.exit(1)

    if sys.argv[1] == j:
        (cS,cO) = commands.getstatusoutput('ping -c1 -t1 %s' % j)
        i = 0
        m = "Waiting for %s to wake up..... " % j

        while True:
            if cS == 0:
                print "Host: %s is up and running........\n" % j
                break
            else:
                (cS,cO) = commands.getstatusoutput('ping -c1 -t1 %s' % j)
                sys.stdout.write('\r%s\b%d' % (m,i))
                sys.stdout.flush()
                sys.stdout.write('\r \b')
                i += 1

            if i == 80:
                print "The host: %s is not running yet, try again!!\n" % j
                sys.exit(0)
sys.exit(0)

它几乎可以工作,但有什么方法可以改进脚本/逻辑并缩短它?在此先感谢您的任何建议。干杯!!

0 个答案:

没有答案