如何在Ruby中使用Net::SSH复制文件?
How to copy files using Net::SSH in Ruby?
据我所知,如果我想将文件复制到远程主机然后从命令行对其进行操作,我需要同时使用 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
你考虑过Net::SFTP吗?连同它和 Tempfile,我目前正在一个项目中使用它从本地复制到远程。您还可以进行简单的文件修改。如果您愿意,可以使用 Stream.IO 进一步编辑文件。
据我所知,如果我想将文件复制到远程主机然后从命令行对其进行操作,我需要同时使用 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
你考虑过Net::SFTP吗?连同它和 Tempfile,我目前正在一个项目中使用它从本地复制到远程。您还可以进行简单的文件修改。如果您愿意,可以使用 Stream.IO 进一步编辑文件。