我刚才写了这个剧本。脚本的一部分,首先检查主机名(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)
它几乎可以工作,但有什么方法可以改进脚本/逻辑并缩短它?在此先感谢您的任何建议。干杯!!