2012-04-24 28 views
0

私は、リモートサーバー上で正しくたいがoutput変数は、画面に何リモートで実行したコマンドの出力が含まれていないコマンドを実行機能Net :: SSHライブラリを使用した場合、実行されたコマンドの結果を取得する方法は?

def run_through_ssh(command) 
    host = $edumate_server 
    user = 'user' 
    pass = '******' 

    output = Array.new  
    Net::SSH.start(host, user, :password => pass) do|ssh| 
     output = ssh.exec(command) 
     #output = ssh.exec(command+" 2>&1") 
    end 

    return output 
end 

を持っています。私はsinatraの中でこの関数を使い、不思議なことに私はsinatraを実行するスクリーン上の出力を見ることができます。

どのようにリモートで実行されたコマンドの出力をキャプチャできますか?

出力変数が

  • ルビー1.8.7(2010-08-16パッチレベル302)[I386-MINGW32]
  • ネットSSH(2.2を使用して

    #<Net::SSH::Connection::Channel:0x3fe40c0 @remote_maximum_window_size=2097152, @ 
    eof=false, @on_open_failed=nil, @remote_window_size=2097152, @closing=true, @pro 
    perties={}, @local_maximum_packet_size=65536, @on_process=nil, @type="session", 
    @remote_id=0, @on_confirm_open=#<Proc:[email protected]:/Ruby187/lib/ruby/gems/1.8/ge 
    ms/net-ssh-2.2.1/lib/net/ssh/connection/session.rb:320>, @on_request={}, @local_ 
    id=0, @on_extended_data=#<Proc:[email protected]:/Ruby187/lib/ruby/gems/1.8/gems/net- 
    ssh-2.2.1/lib/net/ssh/connection/session.rb:332>, @local_maximum_window_size=131 
    072, @on_eof=nil, @connection=#<Net::SSH::Connection::Session:0x3fe42a0 @options 
    ={:logger=>#<Logger:0x400cb90 @level=4, @progname=nil, @logdev=#<Logger::LogDevi 
    

    ようなものが含まれてい.1)

答えて

関連する問題