ssh befehl absetzen und rückgabe bekommen
Verfasst: Dienstag 8. Februar 2011, 12:12
Hier erst mal mein Codesnipe:
Ich setze per SSH einen Befehl an einen Linux Rechner ab und bekomme auch die Ausgabe wenn ich mir die Ausgabe auf den Bildschirm per print ausgeben lasse. Nun muß ich allerdings, diese Augabe mit Python noch filtern und da ist mein Problem. Es sieht so aus als würde die Ausgabe, die ich bekomme, sequenziell ist, also Zeichen für Zeichen und da fällt mir nun das filtern mit split und so weiter ziemlich schwer. Wie bekomme ich denn nun mehr oder weniger einen kompletten String zusammen, den ich weiter filtern kann? Achja, ich lege die Ausgabe mal bei.
Aus der Ausgabe muß ich nun die Tabelle heraus filtern. Dieses Problem hatte ich hier im Forum schon mal beschrieben und habe auch eine Lösung bekommen, allerdings war es vorher eine Textdatei und jetzt ist die Ausgabe, Zeichen für Zeichen. Weiß jemand Rat?
EDIT: denn so, konnte ich es vorher filtern als die Ausgabe noch eine Datei war:
In der Datei stand nichts anderes drin, wie auch oben die Ausgabe.
Code: Alles auswählen
def executeCommand (server_ip, username, password, command):
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(server_ip, username=username, password=password)
stdin, stdout, stderr = ssh.exec_command (command)
stdin.flush()
data = stdout.read ()
return data
Code: Alles auswählen
Vmid Name File Guest OS Version Annotation
16 Ares.itbusiness.intra [datastore1] Ares.itbusiness.intra/Ares.itbusiness.intra.vmx winLonghorn64Guest vmx-04
32 3cxserver.itbusiness.intra [datastore1] 3cxserver.itbusiness.intra/3cxserver.itbusiness.intra.vmx winNetStandardGuest vmx-04
EDIT: denn so, konnte ich es vorher filtern als die Ausgabe noch eine Datei war:
Code: Alles auswählen
for line in datei:
if line.startswith('Vmid'):
continue # Erste Zeile...
parts = line.split()
vmid = parts[0]
vmname = parts[1]