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削除したいファイルが存在しなくても、常に True です!

どうしたの??

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 に答える