gpt4 book ai didi

ruby-on-rails - 如何使用 net-ssh gem 跟踪 ssh 进入系统所需的时间

转载 作者:太空宇宙 更新时间:2023-11-03 17:50:14 25 4
gpt4 key购买 nike

目前我正在开发 Rails 应用程序。我必须通过 ssh 进入系统并返回系统信息,如 Ubuntu 版本、bios 版本等。

我正在使用 net-ssh gem,它工作正常。

这是我的示例代码:

require 'net/ssh'
def check_bios_version
Net::SSH.start('localhost','ubuntu', :password => '1234') do |session|
return vid = session.exec!("echo 'ubuntu1234' | sudo -S dmidecode -s bios-version")
end
end

问题是,有时 ssh 会占用太多时间。

是否有可用于跟踪时间的实用程序或功能?或者,是否有任何其他方法可以添加时间检查,这样如果 ssh session 的时间大于 1 分钟,则返回“无法登录”。

我正在使用 Ruby 1.8.7 和 Rails 3.2.14。

最佳答案

您可以使用 timeout module像这样:

require 'net/ssh'
require 'timeout'

def check_bios_version
Timeout::timeout(60) {
Net::SSH.start('localhost','ubuntu', :password => '1234') do |session|
return vid = session.exec!("echo 'ubuntu1234' | sudo -S dmidecode -s bios-version")
end
}
end

如果超时,它会引发 Timeout::Error,您可以捕获它以打印出“无法登录”消息。

关于ruby-on-rails - 如何使用 net-ssh gem 跟踪 ssh 进入系统所需的时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26124574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com