Guten Tag,
nun, ich bin momentan dabei ein Programm zu schreiben, welches anhand des Types eines Servers dann entscheidet was er tun soll.
Nun wollte ich also dann diesen kleinen Code ausführen:
def test():
var ="Name des Servers"
if (os.system('hostname') == var):
print ("es ist Server 1")
else:
print ("es hat nicht funktioniert")
Zum Test hatte ich in die variable "var" meinen Hostnamen rein kopiert, also hätte es sinngemäß funktionieren müssen, jedoch kam ich immer in den else Zweig. Nachdem ich auch versuchte die Schritte einzeln nach zu verfolgen, kam ich auch nicht weiter.
Könnte mir da vielleicht einer weiter helfen?
Python Programm in Verbindung mit Linux Kommandos
Benutze lieber:
#edit: Die Klammern um die Bedingung beim if sind nutzlos, also weg damit 
Code: Alles auswählen
import platform
platform.node()
import socket
socket.gethostname()

Zuletzt geändert von Jankie am Freitag 3. Juli 2020, 14:21, insgesamt 1-mal geändert.
Den Aufruf os.system niemals benutzen. Neben diversen Problemen die der hat, ist sein Rueckgabewert auch nicht, was du glaubst, was er ist.
Wenn du die Ausgabe eines Programms haben willst, benutz subprocess.run.
Und natuerlich ist Jankies Ansatz vorzuziehen, wenn die Informationen auch aus Python direkt kommen koennen.
Wenn du die Ausgabe eines Programms haben willst, benutz subprocess.run.
Und natuerlich ist Jankies Ansatz vorzuziehen, wenn die Informationen auch aus Python direkt kommen koennen.
..und der Rückgabetyp ist auch nicht das was du erwartet hast. Der ist bei os.system ein int und zwar mit dem Wert 0. Also wäre deine Abfrage auch dahingehend nicht Richtig, weil du einen int mit einem string versuchst zu vergleichen, da kommt immer False.