• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ruby使用Net::SSH.start抛出异常处理

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

ruby中使用Net::SSH.start,当输入的用户名或密码等出错,如果不做处理,会卡死,另外发现日志中会打印3次输入密码的提示,这里可以把交互给去了,另外捕捉异常。可以通过以下方式实现。

      begin

        Net::SSH.start(ip,username,:password => password,:timeout => 10, :non_interactive=>true) do |ssh|

          # output = ssh.exec!("hostname")

          # puts output

        end

      rescue Timeout::Error

        @result = "  Timed out"

      rescue Errno::EHOSTUNREACH

        @result = "  Host unreachable"

      rescue Errno::ECONNREFUSED

        @result = "  Connection refused"

      rescue Net::SSH::AuthenticationFailed

        @result = "  Authentication failure"

      end

1)加入non_interactive=>true该参数可以去除交互。

2)以下用于捕捉异常

rescue Timeout::Error

  @result = "  Timed out"

rescue Errno::EHOSTUNREACH

  @result = "  Host unreachable"

rescue Errno::ECONNREFUSED

  @result = "  Connection refused"

rescue Net::SSH::AuthenticationFailed

  @result = "  Authentication failure"

end



PS

下方是我个人订阅号,会一直更新各类技术文章,欢迎关注  :)



鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap