【问题标题】:Assistance with automating an SFTP transfer via R协助通过 R 自动进行 SFTP 传输
【发布时间】:2018-07-17 13:59:29
【问题描述】:

我有一个手动执行的 SFTP 进程。

注意:我要写的都不是我的实际登录凭据,所以请不要在 cmets 中提出。

我的手动过程看起来像这样。

  1. 打开终端
  2. 输入open ftp://ftp.info.com/jsmith/Up
  3. FTP 客户端打开并询问我的用户名和密码
  4. 我输入我的用户名:jsmith
  5. 我输入密码:testpassword123
  6. 我上传我的文件

如何使用 R 自动化整个过程?我使用什么包,脚本是什么样的?

【问题讨论】:

  • 您的标题询问了 SFTP,但您显然是在打开一个 FTP URL。 SFTP 和 FTP 是完全不同的协议。你想使用什么协议?
  • @Kenster 我的错。我猜是 FTP?

标签: r ftp rstudio sftp rcurl


【解决方案1】:

如果您使用的是 Windows,我建议您使用 PuTTY 或 WinSCP。如果在 Linux 上使用内置或适用于操作系统的 SFTP(检查 aptyum 存储库以获取适用于您的操作系统的版本)。我个人使用WinSCPscripts。对于 Macintosh,我推荐 CyberDuck

您可以通过system() R 函数将这些外部程序用于您的 SFTP / SCP 传输。此函数将允许您调用任意命令以传递给操作系统。

例子:

system("open sftp://username:password@sftp.example.com/", intern = F)

请参阅?system 了解更多选项和示例。

您可以使用 SSH 密钥对进行无密码身份验证,或者您可以将密码存储为环境变量(并以这种方式传递值),或者理论上您可以通过将密码正确地放入 SFTP 命令中来不安全地执行此操作system() 内部。

system() 是唯一可用的 R 命令,除此之外,您只需遵循您选择的任何 SFTP 程序的语法即可。如果您的文件具有基于日期在 R 中动态生成的名称,那么我将以相同的方式生成一个 WinSCP 脚本(传递带有日期的文件名,就像您在评论中使用 paste 所做的那样)。有关命令、选项和 WinSCP 示例,请参阅 this

【讨论】:

  • 感谢您的回答。你必须原谅我,因为我对这些东西完全不熟悉,但它会是什么样子?我不知道你刚才打的很多东西是什么意思哈哈
  • @wizkids121 请查看我更新的答案以获取示例
  • 谢谢,但是我在哪里添加呢?在我的 R 脚本结束时?
  • @wizkids121 您在 R 中执行此操作。一般来说,在 R 脚本中的哪个位置并不重要。仅当您编写了一些需要此结果的其他代码时才重要,那么您需要将其放在该代码之前。
  • 哦,我用 Cyber​​duck。哈哈,谢谢。大写的好方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-04
  • 2016-03-06
  • 1970-01-01
  • 2011-01-15
  • 1970-01-01
  • 2013-02-13
  • 1970-01-01
相关资源
最近更新 更多