Stringbearbeitung und subprocess
Verfasst: Mittwoch 30. März 2011, 10:52
Hallo,
ich möchte ein kleines Programm schreiben, welches über SSH eine Abfrage startet und mir die installierten Xen-VMs ausgibt. Das ist mein Sourcecode:
Die Ausgabe von vms[0] sieht dann so aus:
Habt ihr eine Idee wie das anstellen kann? Kann ich die Ausgabe von subprocess.Popen auch zeilenweise in eine Liste schreiben? Das würde die Sache glaube ich vereinfachen.
ich möchte ein kleines Programm schreiben, welches über SSH eine Abfrage startet und mir die installierten Xen-VMs ausgibt. Das ist mein Sourcecode:
Code: Alles auswählen
#!/usr/bin/env python
# -*- encoding: utf-8; py-indent-offset: 4 -*-
import subprocess
hosts = (
'xen01',
'xen02',
'xen03',
'xen05'
)
def get_vmlist():
host_out = []
for i in range(0, len(hosts)):
output = subprocess.Popen(['ssh','-l','root',str(hosts[i]),'xe','vm-list|grep','name-label'], stdout=subprocess.PIPE)
host_out.append(output.stdout.read())
return host_out
vms = get_vmlist()
print vms[0]
Wie man unschwer erkennen kann, bekomme ich neben dem Rechnernamen noch einige überflüssige Informationen, die ich gerne wegfiltern möchte.name-label ( RW): CAG1
name-label ( RW): CLS01
name-label ( RW): Mail-3
name-label ( RW): RSA01
name-label ( RW): Control domain on host: xen01
name-label ( RW): Web01
name-label ( RW): Monitoring01
name-label ( RW): MX1
name-label ( RW): Mail-1
Habt ihr eine Idee wie das anstellen kann? Kann ich die Ausgabe von subprocess.Popen auch zeilenweise in eine Liste schreiben? Das würde die Sache glaube ich vereinfachen.