将ssh输出打印到屏幕

时间:2014-12-16 13:35:50

标签: ruby

我一直在编写一个脚本,使用net / ssh在另一台服务器上远程运行ruby脚本并将输出打印到屏幕上,这样我们就可以看到发生了什么,我差不多了感谢所有在这里回答我问题的人。谢谢!

现在它打印输出但它还会先打印命令/opt/scripts/test_run.rb并多次退出屏幕,然后再输出脚本。我希望看到命令运行一次并将脚本输出到屏幕。我究竟做错了什么?提前致谢!

#!/usr/bin/ruby
require 'net/ssh'
require 'pty'

puts "RUNNING TEST"
Net::SSH.start(server, user) do |ssh|
  ssh.open_channel do |channel|
     channel.on_request "exit-status" do |channel, data|
     $exit_status = data.read_long
  end
 channel.request_pty do |channel, data|
   channel.exec("sudo -s")
     channel.on_data do |channel, data|
     puts data
     channel.send_data("/opt/scripts/test_run.rb\n")
     channel.send_data("exit\n")
     end
    end
  end
end
puts "DONE"
puts `sleep 5`
puts " "

puts "END OF TEST"

0 个答案:

没有答案