ruby - Ruby Net::SSH 重用会话
问题描述
我有几种方法可以做到这一点:
def method_a
Net::SSH.start(...) do |ssh|
end
end
def method_b
Net::SSH.start(...) do |ssh|
end
end
def method_c
Net::SSH.start(...) do |ssh|
end
end
每个方法都调用 Net::SSH start ,它们是单独的 SSH 会话,做不同的事情。
有没有办法重用 Net::SSH 会话,以便所有 3 种方法都使用一个会话?
谢谢。
解决方案
是的,你绝对可以让它变干。
您可以添加一种接受 Net::SSH 连接的主机名的方法,如下所示:
def ssh_exec(hostname)
Net::SSH.start( hostname, 'user', :timeout => 5, :paranoid => false ) do |ssh|
....
end
end
然后,您可以在需要的任何地方使用正确的主机名调用此方法ssh_exec()
...
推荐阅读
- docker - GKE not able to reach MongoDB Atlas
- python - 当在执行 SVM 时预期一维数组出错时,传递了列向量 y?
- django - 在 Django 中创建计划
- c# - 如果给定的用户输入包含在该项目中,C# 返回搜索结果(项目)
- common-lisp - clsql 连接池
- azure - Azure Function 在部署后偶尔仍会运行旧代码
- c - LZ77优化
- python - 如何使用给定列表的for循环在Python中反转索引值
- java - Android中的媒体播放器通知
- javascript - 对 graphql 查询使用 try catch 块