我一直在编写一个脚本,使用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"