如何在远程服务器上轻松执行R命令?

如何在远程服务器上轻松执行R命令?,r,remote-access,R,Remote Access,我在相当慢的桌面上使用Windows上的Excel+R。我有一个完全的管理员访问非常快速的基于Ubuntu的服务器。我想知道:如何在服务器上远程执行命令 我能做的是用saveRDS保存所需的变量,然后用loadRDS将它们加载到服务器上,在服务器上执行命令,然后保存结果并将它们加载到Windows上 但这一切都是非常互动和手动的,很难定期进行 有没有什么方法可以直接从R做这些事情,比如 通过ssh等方式与服务器连接 传输所需对象(可手动指定) 在服务器上执行给定的代码并等待结果 得到结果 我可以

我在相当慢的桌面上使用Windows上的Excel+R。我有一个完全的管理员访问非常快速的基于Ubuntu的服务器。我想知道:如何在服务器上远程执行命令

我能做的是用
saveRDS
保存所需的变量,然后用
loadRDS
将它们加载到服务器上,在服务器上执行命令,然后保存结果并将它们加载到Windows上

但这一切都是非常互动和手动的,很难定期进行

有没有什么方法可以直接从R做这些事情,比如

  • 通过ssh等方式与服务器连接
  • 传输所需对象(可手动指定)
  • 在服务器上执行给定的代码并等待结果
  • 得到结果

  • 我可以远程运行整个R,但这样会产生与网络相关的问题。我在Excel中执行的大多数R命令都非常快速,并且需要大量数据。我只需要远程执行一些特定的命令,而不是全部命令

    有几个选项,最简单的是交换安全密钥,以避免一直手动输入SSH/SCP密码。在此之后,您可以编写一个简单的R脚本,该脚本将:

  • 将必要的变量保存到数据文件中
  • 使用scp将数据文件上载到ubuntu服务器
  • 使用ssh运行远程脚本,该脚本将处理数据(您刚刚上传的数据)并将结果存储在另一个数据文件中
  • 同样,使用scp命令将结果传输回工作站
  • 您可以使用R的
    system
    命令运行带有必要选项的scp和ssh

    另一个选项是在远程计算机上设置群集工作程序,然后可以使用clusterExport导出数据,并使用clusterEvalQ和clusterApply计算表达式。

    这是我的设置

  • 使用scp复制代码和数据。(我使用了github,所以我从github克隆了我的代码。这有助于确保我的工作是可复制的)

  • (可选)使用sshfs在本地计算机上装载远程文件夹。这允许您使用本地文本编辑器而不是ssh命令行编辑远程文件

  • 将所有要运行的内容放在一个R脚本中(在远程服务器上),然后在R批处理模式下通过ssh运行它


  • 还有几个选择: 1) 您可以使用Rserve直接从R执行这些操作。见:

    请记住,Rserve可以接受来自R客户端的连接,例如,请参阅


    2) 您可以在linux计算机上设置群集,然后从windows客户端使用这些群集设施。最简单的方法是使用Snow,另请参见foreach和许多其他群集库。

    您可以使用
    系统直接从R调用shell命令,因此您可以轻松地将当前在控制台输入的命令写入R脚本。其中一个选项是安装Rstudio服务器并从那里开始工作。否。AFAIK RExcel不支持远程连接,即使它支持远程连接,但如果我开始通过网络传输所有数据,也不会有效率。我只需要远程执行特定的命令。这正是我要做的。太糟糕了,R没有内置一些客户机/服务器功能。如何在远程机器上设置集群?