我有一个脚本,它将执行从一个服务器到另一个服务器的文件传输,但它给出了一个错误:
Net::SCP::Error (SCP did not finish successfully ()):有人能帮我吗?这是我的代码。
Net::SCP.start( 's.com', 'username', :password => 'password' ) do|scp|
scp.upload!( source, destination )
end发布于 2011-04-29 03:34:35
我今天遇到了这个问题。发现我的本地文件(在您的示例中是source)指向了一个不存在的文件。祝好运。
发布于 2011-07-18 07:51:08
如果要将文件上载到远程服务器上尚不存在的文件夹,也会发生此错误。在SCP中,文件夹创建不是隐式的
发布于 2013-06-14 01:25:12
我有一个稍微不同的错误,在括号中包含了退出代码:
Net::SCP::Error Exception: SCP did not finish successfully (1)一开始,我认为这可能是由于源文件不存在或目标目录不存在而引起的,但事实证明这是因为我传递的是源文件的路径名对象,而不是字符串。
my_file = Rails.root.join('config/my_file') # my_file.class => Pathname
scp.upload!(my_file, "/var/tmp/dev.pub")
<Net::SCP::Error: SCP did not finish successfully (1)>
"gems/net-scp-1.0.4/lib/net/scp.rb:352:in `start_command'", "gems/net-ssh-2.6.7/lib/net/ssh/connection/channel.rb:590:in `call'",
"gems/net-ssh-2.6.7/lib/net/ssh/connection/channel.rb:590:in `do_close'", "gems/net-ssh-2.6.7/lib/net/ssh/connection/session.rb:580:in `channel_close'", "gems/net-ssh-2.6.7/lib/net/ssh/connection/session.rb:459:in `send'",
"gems/net-ssh-2.6.7/lib/net/ssh/connection/session.rb:459:in `dispatch_incoming_packets'",
"gems/net-ssh-2.6.7/lib/net/ssh/connection/session.rb:216:in `preprocess'", "gems/net-ssh-2.6.7/lib/net/ssh/connection/session.rb:200:in `process'",
"gems/net-ssh-2.6.7/lib/net/ssh/connection/session.rb:164:in `loop'", "gems/net-ssh-2.6.7/lib/net/ssh/connection/session.rb:164:in `loop_forever'",
"gems/net-ssh-2.6.7/lib/net/ssh/connection/session.rb:164:in `loop'", "gems/net-ssh-2.6.7/lib/net/ssh/connection/channel.rb:269:in `wait'",
"gems/net-scp-1.0.4/lib/net/scp.rb:279:in `upload!'",文件正在被复制到正确的远程位置,但net-ssh中的某些内容退出了1而不是0,我没有费心去查找该调用在堆栈跟踪中的位置
# gems/net-scp-1.0.4/lib/net/scp:352
channel.on_close { |ch| raise Net::SCP::Error, "SCP did not finish successfully (#{ch[:exit]})" if ch[:exit] != 0 }只需将路径名对象改为字符串即可使一切正常工作
my_file = Rails.root.join('config/my_file').to_s
scp.upload!(my_file, "/var/tmp/dev.pub")https://stackoverflow.com/questions/4465690
复制相似问题