如何将文件从一台服务器复制到另一台服务器?

2024-03-02

我有一台服务器,除了 xls 日志文件之外什么都没有。每个文件为 5-15Mb,并且它是动态的,因为文件可以在任何时间点添加。现在我需要一种方法来使用 Ruby 执行以下过程。

  1. 通过将文件名从一台只有日志文件的服务器发送到另一台服务器来复制文件。
  2. 我需要将服务器密码作为参数传递。
  3. 一切都在后台发生,由 Ruby 脚本触发。

查看Net::SCP http://rubydoc.info/gems/net-scp/frames and Net::SSH http://rubydoc.info/gems/net-ssh/frames宝石。第一个可让您使用安全副本检索文件,第二个可让您轻松找到可检索的文件的名称。在 Net::SSH 中,ssh.exec!将成为你的朋友。

来自Net::SCP http://rubydoc.info/gems/net-scp/frames docs:

Net::SCP 实现了 SCP(Secure CoPy)客户端协议,允许 Ruby 程序以编程方式安全地在远程服务器之间传输单个文件或整个目录树。它支持通过同一连接并行工作的多个同步 SCP 副本,以及同步串行副本。

Net::SCP 还提供了 open-uri 搭配,因此您可以使用 Kernel#open 方法打开和读取远程文件:



  # if you want to read from a URL voa SCP:
  require 'uri/open-scp'
  puts open("scp://[email protected] /cdn-cgi/l/email-protection/path/to/file").read
  

来自Net::SSH http://rubydoc.info/gems/net-ssh/frames docs:

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")

Add an end使用上面的代码来关闭块。街区内,output将包含您发送的命令的结果。

通过 Ruby 从包含文件的计算机检索文件的另一种方法是让 Ruby 直接从托管文件的计算机发起传输并通过scp到另一台机器。

您可以使用而不是使用 Net::SCP 和 Net::SSH网络::SFTP http://rubydoc.info/gems/net-sftp/frames,在一个 gem 中管理这一切。它也依赖于安全连接,但您可能无法使用 SFTP。这Net::SFTP::Operations::Dir and Net::SFTP::Operations::Download课程和文档将是你的朋友。

其他选项包括使用标准rsync正如 @tadman 提到的,在一个简单的 shell 中。有多种方法可以实现这一点,这是托管环境中的常见需求。


还有其他更好的方法吗?

rsync,在命令行中。它非常智能,可以根据需要移动文件夹和文件增量。还, ”如何使用 ssh 和 Ruby 传输文件 http://www.rubyinside.com/how-to-transfer-files-using-ssh-and-ruby-512.html”及其链接到“Ruby 文件上传 ssh 介绍 http://www.infoq.com/articles/ruby-file-upload-ssh-intro".

融合@tadman的rsync推荐用Ruby,有“最便宜的 rsync 替代品(使用 Ruby) http://snippets.dzone.com/posts/show/1812".

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将文件从一台服务器复制到另一台服务器? 的相关文章

随机推荐

  • 如何在 Angular 中使用 *ngFor 设置 formControlNames?

    我正在尝试使用设置表单控件 ngFor数组中的对象 根据用户的不同 有时我的数组中会有 1 个对象 但有时会有多个对象 我的问题是我想创建一个formControlName使用我可以但不确定如何在组件中设置表单组验证器的循环 只需像下面这样
  • 如何通过抽象活动记录向子类添加范围

    我想要一些子类 它们都应该有一个范围 同名 尽管我知道直接继承不可能做到这一点 但基本思想如下 class MySuperClass lt lt ActiveRecord Base abstract class true scope sco
  • 如何将文件添加到以前的提交?

    在过去的一个小时左右我修改了文件 A ATest B BTest 为了确保我的提交消息与实际更改一致 已提交A并附有说明 不幸的是我没有包括在内ATest进入该提交 与此同时 尚未承诺的是B and BTest 此时最好的方法是什么 我想要
  • 为什么这条线没有被覆盖? Xcode 代码覆盖率

    我在 Xcode 中的代码覆盖率报告中遇到问题 从这个截图中你可以看到 在左侧选项卡上 第 58 行从断点 触及 在右侧选项卡上 测试通过 在右侧选项卡上 我仅运行第 37 行的测试 为什么 Xcode 将第 58 行标记为红色 因为未覆盖
  • Xcode C++ omp.h 文件未找到

    我正在尝试将 openmp 包含到我的 Xcode C 项目中 我已将 Xcode 中的编译器更改为 LLVM GCC 4 2 添加 fopenmp 作为 CFlag 并在 xcode 中启用了 OpenMP 支持 但它仍然显示 omp h
  • 最大活动数量!

    是否有关于应用程序可以拥有的活动数量的设计指南 如果有限制 那么可以在 Android 应用程序中捆绑的理想活动数量是多少 IMO 没有这样的限制 典型的应用程序将有
  • 如何检查一个对象是否具有属性?

    如何检查一个对象是否具有某些属性 例如 gt gt gt a SomeClass gt gt gt a property Traceback most recent call last File
  • SEO 和在 url 中使用 !#

    我在某处读到过如何创建一个网站 该网站使用 AJAX 加载页面的每个部分 同时仍然提供 SEO 这与 url 中使用 有关 类似于推特的做法 我似乎在任何地方都找不到任何有关它的信息 有人知道我在说什么吗 Is this http goog
  • 使用 Microsoft Teams 的 REST API 访问用户状态

    我想查询我自己和其他用户在 Teams 中的状态 理想情况下 我希望在它们发生变化时收到通知 以便我可以更改我的内部状态 目前图形 API 似乎没有此功能 不幸的是 这尚不可用 我们确实计划将其添加到 Microsoft Graph 但我们
  • 是否有一个 Java 库可以收集 UI 使用情况统计信息?

    是否有一个 Java 库可以收集 UI 使用情况统计信息 感觉像 log4j 的东西吗 如果您正在使用 Eclipse 平台 您可能会查看使用数据收集器项目 http www eclipse org epp usagedata http w
  • Magento 发票 Excel 导出 - 如何更改字段?

    我想将一些发票导出到 Microsoft Excel XML 标准格式效果不太好 因为我需要一些额外的列 我的问题是 文件在哪里生成 我在哪里设置这些特殊列 提前致谢 导出到 Excel 时执行InvoiceController calls
  • 如何确定平衡或完全平衡的二叉搜索树(仅从图片中)

    我不知道如何确定一棵树是否平衡 完全平衡 或者如果我将它作为图片而不是代码来确定它是否平衡 例如 如果我有这棵树 如何检查它是平衡 完美平衡还是不平衡 有人能给我一个完美平衡树的例子吗 o b p d m r 显然 如果是这样的话 我可以判
  • catch forEach 最后一次迭代

    arr 1 2 3 arr forEach function i last iteration 如何捕获循环结束的时间 我可以if i 3 但我可能不知道我的数组的编号是多少 另请参阅ES6 的更新答案 https stackoverflo
  • Outlook 超链接上下文菜单

    我正在尝试为超链接制作上下文菜单 似乎有几个上下文可以拦截超链接事件 目前我对 idMso ContextMenuReadOnlyMailHyperlink 的上下文菜单感兴趣 有两种不同的方式可以执行此菜单中新按钮的回调 如果在 Outl
  • 如何给用户添加角色?

    我们使用 Yii2 框架的最后一个 alpha 版 用户的角色已经创建 但问题是如何分配给用户 缺少文档 对于 RBAC 的数据库版本 请使用 DbManager 引用自 Alexufo use yii rbac DbManager r n
  • 使用 vagrant、docker 和 git 进行项目布局

    所以我最近发现了 docker 和 vagrant 并且我正在启动一个新的 Php 项目 我想在其中使用两者 Vagrant 是为了拥有一个所有开发人员都可以使用的可互换环境 Docker 用于生产 但也在 vagrant 机器内部 因此开
  • docker-compose 中的 Hyperledger 浏览器无法与 Hyperledger 区块链配合使用

    我正在尝试让 hyperledger explorer 与 docker compose 一起使用 hyperledger 区块链浏览器没有连接到 hyperledger 区块链网络 它显示 无法连接客户端对等点 请检查配置和对等点状态 不
  • Neo4j 还支持 XA 事务吗?

    我的项目使用 spring boot 和 neo4j SDN spring data neo4j 作为数据访问层 最近我遇到一个问题 我需要跨存储持久化 我需要更新neo4j和oracle数据库中的数据 因此 执行此操作的标准方法是 XA
  • Android AdView 泄漏,可能是由于某些内部后台线程造成的

    我在由片段创建的窗口中显示 AdMob 广告横幅 这有效 但我遇到了奇怪的泄漏问题 我还不明白 当我多次打开和关闭应用程序时 广告片段每次都会被正确销毁 但控制该片段的 MainActivity 正在泄漏 有罪的是代码中的这一行 adReq
  • 如何将文件从一台服务器复制到另一台服务器?

    我有一台服务器 除了 xls 日志文件之外什么都没有 每个文件为 5 15Mb 并且它是动态的 因为文件可以在任何时间点添加 现在我需要一种方法来使用 Ruby 执行以下过程 通过将文件名从一台只有日志文件的服务器发送到另一台服务器来复制文