【发布时间】:2019-06-03 13:19:16
【问题描述】:
据我所知,如果我想将文件复制到远程主机然后从命令行操作它,我需要同时使用 Net::SCP 和 Net::SSH。
最好设置一个 SSH 会话,进行复制,然后使用相同的连接解压缩文件并安装它们。
我错过了什么吗?
【问题讨论】:
据我所知,如果我想将文件复制到远程主机然后从命令行操作它,我需要同时使用 Net::SCP 和 Net::SSH。
最好设置一个 SSH 会话,进行复制,然后使用相同的连接解压缩文件并安装它们。
我错过了什么吗?
【问题讨论】:
Net::SCP 允许您轻松地从现有的 Net::SSH 会话中获取 Net::SCP 引用:
require "net/ssh"
require "net/scp"
Net::SSH.start("remote.host", "username", :password => "passwd") do |ssh|
ssh.scp.upload("/local/path", "/remote/path")
ssh.exec("...insert commands...")
end
在此处阅读更多信息:http://net-ssh.github.io/net-scp/classes/Net/SCP.html
【讨论】:
channel.on_download_complete 这样的东西。 PS我没找到。我正在执行 3 个 ssh 会话来操作文件、下载文件然后删除文件。
您考虑过 Net::SFTP 吗?除了那个和 Tempfile,我目前在一个项目中使用它来从本地复制到远程。您还可以进行简单的文件修改。如果您愿意,可以使用 Stream.IO 来编辑文件。
【讨论】: