1

这是我的代码

Net::SSH.start("XXX.upload.akamai.com", "sshacs", :keys=>["#{ENV['AKAMAI_SSH_KEY']}"]) do |mk|

channel = mk.open_channel do |ch|

ch.exec("rm filename.mp4") do |tk, success|

if success
    puts "++++++++++++ Deleted: #{success.class}"

else
    puts "------------ NOT deleted: #{success.class}"

end

end

end



end

success即使我要删除的文件甚至不存在,也始终为真!

这是怎么回事??

4

2 回答 2

0

来自Channel#exec 的 Net::SSH 文档

在这种情况下,成功意味着命令正在执行,而不是它已经完成,......

我想知道您是否因为成功发送请求而获得了成功,而 Net::SSH 并不关心该请求是否完成。它完成了它的工作,所以它是成功的。

将它与类似的东西结合起来:在数据上

channel.on_data do |ch, data|
  puts "what am i really getting back: #{data.inspect}" 
end
于 2013-06-05T11:52:32.160 回答
0

我想删除文件你应该使用 rm 命令。像那样

   ch.exec("rm filename.mp4") do |tk, success|
于 2013-06-05T11:27:48.440 回答