2013-07-24 48 views
1

我有一个rake任务,它设置为使用nets/scp gem从远程服务器获取文件夹。 我的Gemfile:Rails Net :: SCP文件传输

gem "net-ssh" 
gem "net-scp" 

我的代码:

require 'net/scp' 
desc "Fetch hadoop data" 
task :fetch_data => :environment do 
Net::SCP.download!("server_name", "user", 
    "/home/dashboard/data", "#{Rails.root}/lib/tasks", 
    :password => "password1") 
end 

我得到的错误:SCP did not finish successfully (1)

如何将文件夹保存到我的轨道任务目录,我怎么能打印出更关于什么导致scp出错的信息?另外,我有我id_rsa钥匙保存在我知道

回答

4

最后我用不同的方法来使用scp在文件:

require 'net/ssh' 
require 'net/scp' 

    desc "Fetch hadoop data" 
    task :fetch_data => :environment do 
    date_yesterday = (DateTime.now - 1.days).strftime("%Y%m%d") 
    date_today = (DateTime.now).strftime("%Y%m%d") 
    Net::SSH.start("server_name", "user",:password => "*****") do |session| 
     session.scp.download!("path_to_file_on_remote", "/home/rails_app/lib/tasks/folder", :recursive => true) 
    end 
    end