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.