No, The same error appears on my Power Mac OSX 10.5.7

$ cat data-sync.rb

require 'rubygems'
require 'net/sftp'
host, user, passwd = '10.50.33.100', 'login', 'pass'
path = '/var/cms/storenew/workspace/live/data'
Net::SFTP.start(host, user, passwd) do |sftp|
  sftp.file.open(path, 'r') do |f|
    puts f.gets()
  end
end

Error for Ruby 1.8.6 EE:

$ ruby -v
ruby 1.8.6 (2008-08-08 patchlevel 286) [i686-darwin9.6.0]

$ ruby data-sync.rb
/opt/ruby-enterprise-1.8.6-20090201/lib/ruby/gems/1.8/gems/net-
sftp-2.0.2/lib/net/sftp.rb:43:in `start': undefined method `shutdown!'
for nil:NilClass (NoMethodError)
        from data-sync.rb:7

And the same for Ruby 1.9:

$ ruby1.9 -v
ruby 1.9.1 (2008-12-30 patchlevel-0 revision 21203) [i386-darwin9]

$ ruby1.9 data-sync.rb
/opt/local/lib/ruby1.9/gems/1.9.1/gems/net-sftp-2.0.2/lib/net/sftp.rb:
43:in `rescue in start': undefined method `shutdown!' for nil:NilClass
(NoMethodError)
        from /opt/local/lib/ruby1.9/gems/1.9.1/gems/net-sftp-2.0.2/lib/net/
sftp.rb:31:in `start'
        from data-sync.rb:7:in `<main>'


On Apr 8, 11:30 am, Conrad Taylor <[email protected]> wrote:

> On Wed, Apr 8, 2009 at 1:09 AM, Shripad <[email protected]> wrote:
>
> > Hi,
>
> > I updated the gem.
> > but still it is showing me the same error.
> > I am using windows, is that a problem for SFTP?
> > IS OpenSSH require for SFTP to connect to remote machine?
> > Is there any other way to do this?
>
> > Thanks and Regards,
> > Shripad
>
> Shripad, I'm not sure of the state of Capistrano on Windows.  I'm sure that
> you'll need the OpenSSH library installed on your system.  Thus, it may be
> easier to install Cygwin and install OpenSSH from there.  Otherwise, you can
> switch to Linux or Mac OS X or other Unix variant.
>
> Good luck,
>
> -Conrad
>
>
>
> > On Apr 8, 12:58 pm, Conrad Taylor <[email protected]> wrote:
> > > On Wed, Apr 8, 2009 at 12:08 AM, Shripad <[email protected]>
> > wrote:
>
> > > > Hi,
> > > > Thanks Conrad for ur urgent reply
>
> > > > What I want to do is just pickup the images from machine A to machine
> > > > B.
>
> > > > I did what you say but I am getting error as follows
>
> > > > E:/InstantRails/ruby/lib/ruby/gems/1.8/gems/net-sftp-2.0.2/lib/net/
> > > > sftp.rb:43:in
> > > >  `start': undefined method `shutdown!' for nil:NilClass
> > > > (NoMethodError)
> > > >        from SSHTransfer.rb:8
>
> > > > what I write is this
> > > > sftp=Net::SFTP.start('132.147.161.159', 'k',:password => 'k')
>
> > > > Thanks and Regards
>
> > > > On Apr 8, 11:24 am, Conrad Taylor <[email protected]> wrote:
> > > > > On Tue, Apr 7, 2009 at 10:27 PM, Shripad <[email protected]>
> > > > wrote:
>
> > > > > > Hi all,
>
> > > > > > I am having following code in ruby
>
> > > > > > require 'net/ssh'
> > > > > >  require 'net/sftp'
> > > > > >  begin
> > > > > >    Net::SSH.start
> > > > > > ('132.147.161.159',:password=>'k',:port=>1234,:username=>'k') do
> > |ssh|
> > > > > >      ssh.sftp.connect do |sftp|
> > > > > >        Dir.foreach('.') do |file|
> > > > > >            puts file
> > > > > >        end
> > > > > >    end
> > > > > > end
> > > > > > rescue Exception=> Ex
> > > > > > puts Ex.message
> > > > > > end
>
> > > > > > After executing the above code it is giving me following error
>
> > > > > > Bad file descriptor - connect(2)
>
> > > > > > username, password, and ipaddress are fine
>
> > > > > > What I want is to take data from remote machine to server.
>
> > > > > > Please Help me out.
>
> > > > > > Thanks and Regards,
> > > > > > Shri
>
> > > > > What are you wanting to do?  SFTP or SSH?  From the code,
> > > > > it appears that you're trying to move a file from point A to B.
> > > > > Thus, here's a brief outline of the things that you can do with
> > > > > SFTP:
>
> > > > > require 'net/sftp'
>
> > > > >   Net::SFTP.start('host', 'username', :password => 'password') do
> > |sftp|
> > > > >     # upload a file or directory to the remote host
> > > > >     sftp.upload!("/path/to/local", "/path/to/remote")
>
> > > > >     # download a file or directory from the remote host
> > > > >     sftp.download!("/path/to/remote", "/path/to/local")
>
> > > > >     # grab data off the remote host directly to a buffer
> > > > >     data = sftp.download!("/path/to/remote")
>
> > > > >     # open and write to a pseudo-IO for a remote file
> > > > >     sftp.file.open("/path/to/remote", "w") do |f|
> > > > >       f.puts "Hello, world!\n"
> > > > >     end
>
> > > > >     # open and read from a pseudo-IO for a remote file
> > > > >     sftp.file.open("/path/to/remote", "r") do |f|
> > > > >       puts f.gets
> > > > >     end
>
> > > > >     # create a directory
> > > > >     sftp.mkdir! "/path/to/directory"
>
> > > > >     # list the entries in a directory
> > > > >     sftp.dir.foreach("/path/to/directory") do |entry|
> > > > >       puts entry.longname
> > > > >     end
> > > > >   end
>
> > > > > Good luck,
>
> > > > > -Conrad
>
> > > Can you upgrade the gem and retrying what you
> > > did before?  You can upgrade by doing the following:
>
> > > sudo gem update
>
> > > -Conrad
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to