net-ssh and remote shell


U

Une Bévue

following the page :
<http://drnicwilliams.com/2006/09/22/remote-shell-with-ruby/>

i've uninstalled net-ssh and the like then,
intall needle-1.3.0.gem
and re-installed :
net-ssh-2.0.3.gem
net-scp-1.0.1.gem
net-ssh-gateway-1.0.0.gem
net-ssh-multi-1.0.0.gem

after that, i wanted to test a small piece of code :
------------------------------------------------------------------------
#! /usr/bin/env ruby

require 'rubygems'
require 'needle'
require 'net/ssh'
require 'lib/preferences' # gives the options
require 'lib/tt_check' # gives tt_connected? (verify the USB-lan is
connected)

if tt_connected?
result=""
session=Net::SSH.start("TT", "root", options)
shell=session.shell.sync ### <<<=== line 13
out=shell.send_command 'ls -lart'
puts out.stdout
else
puts "Twin-Tact is not connected."
end
------------------------------------------------------------------------

and i got :
$ ./ssh_shell_sync.rb
../ssh_shell_sync.rb:13: undefined method `shell' for
#<Net::SSH::Connection::Session:0x16b4fd0> (NoMethodError

then, i wonder if there is a special way to install net-ssh to let it
take into account "Needle" ???
 
Ad

Advertisements

9

90kts

Your code example works with net-shh 1.1.2 but not 2.0.3

For this sort of thing I prefer to use the .exec method and store all
output in an array:

require 'rubygems'
require 'needle'
require 'net/ssh'
session=Net::SSH.start("localhost",
"90kts", :password=>"**************")
cmd = 'ls -lart'
out = []
out = session.exec!(cmd).split(/\n/)
puts out

Hope that helps =)
 
U

Une Bévue

90kts said:
For this sort of thing I prefer to use the .exec method and store all
output in an array:

require 'rubygems'
require 'needle'
require 'net/ssh'
session=Net::SSH.start("localhost",
"90kts", :password=>"**************")
cmd = 'ls -lart'
out = []
out = session.exec!(cmd).split(/\n/)
puts out

Hope that helps =)

yes fine !

what is the usefullness of "needle" here ?

I've installed it, but don't know how to verify net/ssh makes use of
it...

also, I'm unable to have a command with "cd /some/path"

cd is a built-in, i think that's the prob.
 
U

Une Bévue

Une Bévue said:
also, I'm unable to have a command with "cd /some/path"

cd is a built-in, i think that's the prob.

for example, with :
session.exec!("cd /mnt/fat;ls -Al")

i get :
exec: 4: cd: not found

???
 
9

90kts

for example, with :
session.exec!("cd /mnt/fat;ls -Al")

i get :
exec: 4: cd: not found

???

needle is a dependency, it will complain if you try and install net-
ssh without it.
for your example, just do this:
session.exec!("ls -Al /mnt/fat")
 
U

Une Bévue

90kts said:
needle is a dependency, it will complain if you try and install net-
ssh without it.

not sure about that point because i did two installs the first without
needle, i've uninstalled afterwards, install needle, and re-install
net/ssh.
no visible differences ???
for your example, just do this:
session.exec!("ls -Al /mnt/fat")

yes, of course, it was only an example.
 
Ad

Advertisements

9

90kts

not sure about that point because i did two installs the first without
needle, i've uninstalled afterwards, install needle, and re-install
net/ssh.
no visible differences ???


yes, of course, it was only an example.

Does it not automatically install dependencies by default?

When I install from a local gem (no connection to internet) it will
complain that it doesn't have the required dependency (needle)

Try installing with --ignore-dependencies and see what happens...
Anyhoo ..
 
Ad

Advertisements

U

Une Bévue

90kts said:
Does it not automatically install dependencies by default?

When I install from a local gem (no connection to internet) it will
complain that it doesn't have the required dependency (needle)

Quiest frankly i don't remember that point...
If i remember well i've installed net/ssh from local gems without needle
the first time.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top