簡體   English   中英

Ruby Net :: SSH不會給出執行命令的結果

[英]Ruby Net::SSH will not give result of executed command

這是我的代碼

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!

這是怎么回事??

我想刪除文件,您應該使用rm命令。 像那樣

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

網上:: Channel#exec的SSH文檔

在這種情況下,成功意味着命令正在執行,而不是命令已經完成,...

我想知道您是否成功,因為它成功發送了一個請求,而Net :: SSH不在乎該請求是否完成。 它做到了,所以成功了。

將其與類似以下內容結合: 關於數據

channel.on_data do |ch, data|
  puts "what am i really getting back: #{data.inspect}" 
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM