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” ???
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 =)
90kts [email protected] wrote:
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.
Une Bévue [email protected] wrote:
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
???
On Jul 28, 8:06 pm, [email protected] (Une
Bévue) wrote:
???
Une Bévue
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”)
On Mon Jul 28 19:09:39 2008, Une_B=E9vue wrote:
exec: 4: cd: not found
???
Une Bévue
You will need to use Dir#chdir to change directories.
90kts [email protected] wrote:
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.
On Jul 28, 11:36 pm, [email protected] (Une
Bévue) wrote:
for your example, just do this:
session.exec!(“ls -Al /mnt/fat”)
yes, of course, it was only an example.
Une Bévue
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 …
90kts [email protected] wrote:
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.