据我所知,如果要将文件复制到远程主机,然后从命令行进行操作,则需要同时使用Net :: SCP和Net :: SSH。
最好建立一个SSH会话,进行复制,然后使用相同的连接来解压缩文件并安装它们。
我想念什么吗?
答案 0 :(得分:4)
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
答案 1 :(得分:1)
您是否考虑过Net :: SFTP?连同那个和Tempfile,我目前在一个项目中使用它来从本地复制到远程。您还可以进行简单的文件修改。如果您愿意,可以使用Stream.IO来编辑更多文件。