Ich habe also versucht, Net::SSH::Multi zu verwenden, um mich über SSH bei mehreren Rechnern anzumelden und dann mit session.exec("some_command") Shell-Befehle auf den entfernten Rechnern auszuführen.
Der Kodex:
#!/usr/bin/ruby
require 'rubygems'
require 'net/ssh'
require 'net/ssh/multi'
Net::SSH::Multi.start do |session|
# Connect to remote machines
### Change this!!###
session.use 'user@server'
loop = 1
while loop == 1
printf(">> ")
command = gets.chomp
if command == "quit" then
loop = 0
else
session.exec(command)do |ch, stream, data|
puts "[#{ch[:host]} : #{stream}] #{data}"
end
end
end
end
Das Problem, das ich im Moment habe, ist, dass, wenn ich einen Befehl in der interaktiven Eingabeaufforderung eingebe, die "session.exec" die Ausgabe nicht zurückgibt, wenn ich das Programm beende.