我有一个一直在手动执行的SFTP进程。
注意:我要写的都不是我的实际登录凭证,因此请不要在评论中提出。
我的手动过程看起来像这样。
open ftp://ftp.info.com/jsmith/Up
如何使用R自动完成整个过程?我使用什么软件包,脚本将是什么样?
答案 0 :(得分:0)
如果您使用Windows,则建议使用PuTTY或WinSCP。如果在Linux上,请使用内置的或适合于操作系统的SFTP(请检查apt
或yum
存储库以获取适合您的OS的版本)。我个人使用WinSCP
scripts。对于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。