2011-07-18 17 views
0

リモートホストへのsshセッションをオープンし、send_dataを介していくつかのデータをキューイングした後、実際にリモートホストにデータを送信するアクションをどのようにトリガーするのですか? chan.send_requestはV2.0では機能しません(例:chan.send_request "shell"、nil、true)。簡単な例が非常に役立ちます!ssh:send_dataの後にデータ要求を送信する方法

Net::SSH.start('remotehost','user') do |session| 
    session.open_channel do |chan| 
    chan.send_data "..." 
    chan.send_data "..." 

    ??? 

ありがとうございます! ダンあなたが何かしようと、シェルを開始する必要が

答えて

0

:あなたはハンドラを登録する必要があり、あなたのコマンドの出力を確認したい場合は

chan.request_pty do |ch, success| 
    raise "Error requesting pty" unless success 
    ch.send_channel_request("shell") do |ch, success| 
    raise "Error opening shell" unless success 
    end 
end 

を:

chan.on_data do |ch, data| 
    # work with output here 
end 

(またはchan.on_extended_data

+0

はい、改行は各send_dataに添付されていますが、実行されます。 –

+0

@ Dong Dan:私は自分の答えを書き直しました。うまくいけばもう少し役に立つでしょう。 – Jonathan

+0

Jonathanさん、ありがとうございました。これは "Error opening shell(RuntimeError)"を引き起こし、再度調査します。 –

関連する問題