Thread Net::OpenSSH > nachfolgende, abhängige Kommandos
(11 answers)
Opened by Martin at 2013-09-19 18:32
Hi, danke für die Anregung.
Ich habe Net::SSH2 nun auch mal getestet. Abgesehen davon, dass das eher Low-Level ist und die Beschreibung ultradürftig, funktioniert es auch nicht richtig. Aus der Doku konnte ich noch interpretieren, dass ein Channel für mich das richtige ist. Wie man aber Daten an den Channel schickt konnte ich erst durch ein Beispiel, das jemand (scheinbar der Autor) bei PerlMonks gepostet hat. Das scheint soweit auch zu funktionieren. Aber while <$channel> liefert nur das Kommando und die erste Zeile zurück. $channel->read($buf,512) liefert gar nur das zuvor gesendete Kommando zurück. Selbst wenn ich eine Endlosschleife drum rum baue. Ich werde noch etwas experimentieren und wenn ich gar nicht weiter komme, dann benutze ich Net::OpenSSH in Zusammenspiel mit Expect. Bzw. was ich mir vielleicht gleich mal anschaue ist der Net::SSH2 Modus von Net::OpenSSH::Compat. Im Prinzip funktioniert das OpenSSH nämlich hervorragend. Das einzige Problem ist, dass es nicht für meine API Session ausgelegt ist. Edit: Ich bekomme bei Net::SSH2 nicht mal die erste Zeile von "ls" zurück. Ich dachte es nur, aber in Wirklichkeit war das nur der Shell Prompt nach dem Login. So als wäre ls gar nicht abgeschickt. Net::OpenSSH::Compat macht ebenfalls Probleme. Edit 2: ARGH, als wäre ls gar nicht abgeschickt... Das war der Schlüssel. Ich hatte print $channel "ls\n"; verwendet und die Verbindung zu einem anderen Server hatte auch geklappt. Vielleicht mal mit Windows LF probieren print $channel "ls\r\n"; und zack funktioniert es. So eine mistige API habe ich ja noch nie erlebt.... Sieht also so aus, als würde Net::SSH2 meinen Ansprüchen genügen. Vielen Dank für den Tip! Last edited: 2013-09-20 13:31:48 +0200 (CEST) |