在Ruby中,我可以使用Net :: SSH复制文件吗?

时间:2019-01-08 19:46:14

标签: ruby ssh scp

据我所知,如果要将文件复制到远程主机,然后从命令行进行操作,则需要同时使用Net :: SCP和Net :: SSH。

最好建立一个SSH会话,进行复制,然后使用相同的连接来解压缩文件并安装它们。

我想念什么吗?

2 个答案:

答案 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来编辑更多文件。

https://github.com/net-ssh/net-sftp

http://net-ssh.github.io/net-sftp/