Thanks Hugh,
I'm not sure how to do an echo command with Ruby SSH while in a console
application. The first thing I should see is a text based menu.
I am unable to get anything from stdout it seems. When I do the same
SSH manually from outside of Ruby, I do get the menu to come up.
Additionally when I just do a straight session.exec command to connect
to the server and send something, what I send doesn't matter, I can see
the menu. This means to me that something is being sent back through
stdout, but I can't get it with the code below.
So this piece of code never seems to send me back anything.
[code]
channel.on_data do |ch, data|
puts "got data: #{data.inspect}"
end
[/code]
Thanks Again,
Nathan
Hugh Sasse wrote:
> On Wed, 5 Nov 2008, Nathan Halterman wrote:
>
>> OOOOOkaaaaay. :)
>>
>> So it turns out that it was a timing issue. I was sending the
>> channel.on_data too fast for the UI to process. I added in some sleep
>> statements and it worked.
>
> Pardon the spurious + in my previous example, I started to write it in
> the style of a patch to make it clear what I had changed, then thought
> that would actually make it more obscure!
>
> I'm not familiar with Net::ssh, but I suspect there will be a way to
> read
> from the remote machine as well as write to it. I'd recommend, that if
> you have echoing on (you can see what you type) that you try to read
> back
> what you sent. That way you will have less dependence on "magic" timing
> numbers, though you will have to be careful how you match what you get
> back,
> as is the case when you use Expect. If the system gets loaded and you
> have
> to wait for the echo, then that's still OK.
>>
>> Thanks a ton! :)
>> --
>> Posted via http://www.ruby-forum.com/.
>>
>
> Hugh
--
Posted via http://www.ruby-forum.com/.