故障排除使用python ping多个远程服务器的脚本

时间:2018-04-12 14:08:01

标签: python linux loops networking ping

我写了一个简短的python脚本来读取包含多个远程服务器IP地址的文本文件,我想要ping每个地址,然后打印哪些IP无法访问,哪些是。

clsCfg match {
  case Left(config) => // use your config here
  case Right(exception) => // handle exception
}

我的输出如下:

import subprocess
`import os
response = subprocess.call(['ping', '-c', '3'])
file = open('IPlist.txt', "r")
def check_IP_from_file(filename):
for lines in file:
ping_reply = subprocess.call(['ping', '-c', '3'])
if response == 0:
print lines, ping_reply
else: 
  print lines, "is down!

似乎只检查列表中的最后一个IP并为Ping的使用吐出一堆选项。在我的脚本中,我确实定义了Ping选项。这是我非常困惑的地方。我对python很新,所以我可以称之为菜鸟,请指出我正确的方向。

1 个答案:

答案 0 :(得分:0)

不是一个完整的答案,因为我不是100%肯定你的目标,而是针对subprocess的一些指示......使用Popen代替call,并制作stoud=subprocess.PIPE。然后communicate在下面讨论的方法中。这应该有助于你开始。

import subprocess
import os
p = subprocess.Popen(['ping', '-c', '3'], stdout=subprocess.PIPE)
response, errors = response.communicate()
file = open('IPlist.txt', "r")
def check_IP_from_file(filename):
    for lines in file:
        ping_reply_proc = subprocess.Popen(['ping', '-c', '3'], stdout=subprocess.PIPE)
        ping_reply, ping_errors = subprocess.communicate()
        if response == <whatever>:
            print lines, ping_reply
        else: 
            print lines, "is down!