subprocess / SSH / popen3

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
flothebow
User
Beiträge: 1
Registriert: Montag 25. Juni 2007, 10:45

subprocess / SSH / popen3

Beitragvon flothebow » Montag 25. Juni 2007, 11:03

Servus Zusammen,

ich habe ein kleines Problem beim Zugriff auf die Standardfiledeskriptoren.
In meinem Programm soll eine SSH Verbindung aufgebaut werden und ein " /bin/sh ausgeführt werden. Diese soll später mit "Messages" gefüttert werden und mir den Output ausgeben!

Ich würde als erstes gerne prüfen ob der connect erfolgreich war, sprich der "stderr" leer ist. Hier entsteht jedoch das erste Problem. Da wenn ich einen "read" auf den stderr anwende dieser ja Blockierend ist!

Hier mal mein Code:

[code=]def check_remote_ssh(paramter):

print "Check remote SSH function started"
host = "aragorn"
shell = " /bin/sh"
message = "id; exit"

stdin,stdout,stderr = os.popen3('ssh ' + host + shell)
stdout_nr = sys.stderr.fileno()

#stderr pruefen
error = stderr.read()
if error != "":
print error
else:
pass

stdin.write(message + "\n")
stdin.flush()

out = stdout.read()
print out[/code]

Entferne ich die Prüfung auf den "stderr" funktioniert der Rest vom Code. Ist jedoch die Prüfung drin, bleibt das Programm an der .read() stehen!
Ich will eigentlich zu erst prüfen, ob ich eben eine Shell problemlos bekommen habe, denn wenn nicht soll des ganze Programm terminieren!

Ich habe es mal mit "subprocess" probiert, bin da aber nicht wirklich auf eine Lösung gekommen?

Hat da jemand eine Idee? Bin für jede Hilfe dankbar!
Gruss Flo
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

Beitragvon veers » Montag 25. Juni 2007, 15:22

Nimm doch paramiko :)

Wer ist online?

Mitglieder in diesem Forum: Baidu [Spider]