bin neu hier und ein ziemlicher Python Noob, gebe aber mein bestes die Sache zu verstehen. Ich hab jedoch noch einen ganzen haufen Defizite bei denen ich auf eure Hilfe hoffe
Zur Sache:
Ich lese aus einer CSV eine Spalte mit IP-Adressen aus, was soweit auch ganz gut geht, und überprüfe dann die IPs via Ping ob die Hosts online sind. Soweit bekomme ich auch die Ausgabe der Hosts hin. Jetzt möchte ich jedoch die verschiedenen Hosts anhand ihres Status zur weiteren Bearbeitung in einer Liste oder einem Dict speichern und da hört es sich bei mir schon auf
Ich weiß nicht wie ich anhand der antworten "No Response" bzw. "Alive" die Zeilen zuordnen kann. Anbei der bisheriege Code samt der CVS.
Code: Alles auswählen
#!/usr/bin/python
import csv
import os
import re
import sys
import time
#
data = """\
version,Platform,VC,DC,Enclosure,Bay,hostname,vmkip,vmoip,clusterfile,folder,SCIP,SCGW
ESXi,BL 460 G1,virtualcenter1,cs2,ENC1,Bay2,esxserver1,192.168.101.201,172.16.1.10,cluster1.ps1,FileServers,not applicable,not applicable
ESXi,BL 460 G1,virtualcenter1,cs2,ENC1,Bay2,esxserver2,192.168.101.202,172.16.1.10,cluster1.ps1,FileServers,not applicable,not applicable
ESXi,BL 460 G1,virtualcenter1,cs2,ENC1,Bay2,esxserver3,192.168.101.203,172.16.1.10,cluster1.ps1,FileServers,not applicable,not applicable
ESXi,BL 460 G1,virtualcenter1,cs2,ENC1,Bay2,esxserver4,192.168.101.204,172.16.1.10,cluster1.ps1,FileServers,not applicable,not applicable
ESXi,BL 460 G1,virtualcenter1,cs2,ENC1,Bay2,esxserver5,192.168.101.205,172.16.1.10,cluster1.ps1,FileServers,not applicable,not applicable
ESXi,BL 460 G1,virtualcenter1,cs2,ENC1,Bay2,esxserver6,192.168.101.206,172.16.1.10,cluster1.ps1,FileServers,not applicable,not applicable
ESXi,BL 460 G1,virtualcenter1,cs2,ENC1,Bay2,esxserver7,172.22.1.11,172.16.1.10,cluster1.ps1,FileServers,not applicable,not applicable
"""
fout = open("some.csv", "w")
fout.write(data)
fout.close()
lifeline = re.compile(r"(\d) received")
report = ("No response","Partial Response","Alive")
filename = "some.csv"
dict_reader = csv.DictReader(open(filename, "rb"))
for row in dict_reader:
ip = row["vmkip"]
ping = os.popen("ping -q -c2 "+ip,"r")
print "Testing ",ip,
while 1:
line = ping.readline()
if not line: break
igot = re.findall(lifeline,line)
if igot:
print report[int(igot[0])]
Thx.
T-One