Ich verbinde mich mit einem Server, möchte einen Befehl ausführen und die Ausgabe drucken. Hier ist der Code:Keine Ausgabe/Ergebnis eines SSH-Befehls
def log_in
Net::SSH.start('hostname', 'username', :password => "password") do |ssh|
ssh.open_channel do |channel|
output = channel.exec "ls" do |ch, success, data|
if success then
alert "Result: #{output} #{success} #{data}"
end
end
end
end
end
Das Ergebnis ist „Output“ ist eine leere Liste [], „Erfolg“ wahr und „Daten“ leer zu sein. Offensichtlich sollte dies nicht der Fall sein, da, wenn ich über das Terminal eingeloggt bin und den Befehl "ls" anklicke, mehrere Dateien/Ordner aufgelistet sind. Wo ist mein Fehler?
Interessanterweise, wenn ich Kauderwelsch als Befehl senden, z. anstelle von "ls" sende ich "asdfgh", es gibt dasselbe ([], wahr, leer) zurück. Verwenden von Schuhen/Ruby.