ruby – 如何将文件从一台服务器复制到另一台服务器?
我有一台服务器,只有xls日志文件.每个文件都是5-15Mb,并且在任何时候都可以添加文件的意义上它是动态的.现在我需要一种方法来使用
Ruby来执行以下过程.
>通过从一台服务器发送文件名来复制文件,该服务器除日志文件外只有其他服务器. 解决方法
查看
Net::SCP和
Net::SSH宝石.第一个允许您使用安全副本检索文件,第二个允许您轻松找到可供检索的文件的名称.在Net :: SSH中,ssh.exec!将是你的朋友.
来自Net::SCP文档:
# if you want to read from a URL voa SCP: require 'uri/open-scp' puts open("scp://user@remote.host/path/to/file").read 从Net::SSH文档: require 'net/ssh' Net::SSH.start('host','user',:password => "password") do |ssh| # capture all stderr and stdout output from a remote process output = ssh.exec!("hostname") 在上面的代码中添加一个结尾以关闭块.在块内,输出将包含您发送的命令的结果. 从包含文件的机器通过Ruby检索文件的替代方法是让Ruby直接从托管文件的机器启动传输,并通过scp将它们推送到另一台机器. 您可以使用Net::SFTP在一个gem中管理它,而不是使用Net :: SCP和Net :: SSH.它也依赖于安全连接,但您可能无法使用SFTP. Net :: SFTP :: Operations :: Dir和Net :: SFTP :: Operations ::下载类和文档将成为您的朋友. 其他选项包括在@tadman提到的简单shell中使用标准rsync.有许多方法可以实现这一点,这是托管环境中的常见需求.
rsync,在命令行.它非常智能,可以根据需要移动文件夹和文件的增量.另外,“How to transfer files using ssh and Ruby”及其与“Ruby file upload ssh intro”的链接. Melding @ tadman对Ruby的rsync推荐,有“Cheapest rsync replacement (with Ruby)”. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |