2014-11-17 2 views
1

기본적으로 아래에 같은 유형의 코드를 사용하는 큰 스크립트가 있습니다. 스크립트가 실행되고 작동하지만 화면에 출력되지 않습니다. 원격으로 실행되는 스크립트의 출력을 화면에 표시하려면 어떻게합니까? 나는 루비 스크립트를 실행하고 있습니까?Ruby Net :: SSH 세션의 출력 얻기

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

if ENV['USER'] == 'root' 
    raise "You can't run this as root" 
end 

Net::SSH.start(server01, testuser) do |ssh| 
    ssh.open_channel do |channel| 
    channel.on_request "exit-status" do |channel, data| 
    $exit_status = data.read_long 
    end 
channel.on_data do |channel, data| 
data 
end 
    channel.request_pty do |channel, data| 
    channel.exec("sudo -s") 
    channel.send_data("/tmp/scripts/test.sh\n") 
    channel.send_data("exit\n") 
    end 
end 
end 
puts "DONE" 

답변

2

변화

channel.on_data do |channel, data| 
data 
end 

channel.on_data do |channel, data| 
puts data 
end 

에 언급 data

및 부가 상기 서버로부터의 응답은

,689,
관련 문제