从远程计算机获取R的计算结果

时间:2014-03-26 20:40:22

标签: r ssh-tunnel

假设R正在计算机A上运行计算。

计算机B可以“看看”这个R计算在计算机A上的运行情况吗?

计算完成后,R可以将输出(甚至是创建的文件)发送到计算机B吗?

我知道R有一个sink()功能,但我不知道如何在远程计算机上使用它,或者即使这样做是为了我的目的而设置的合适方式。我应该使用SSH隧道(无论这意味着什么)?

@Enrico& @SeñorO:

计算机A和B是PC。我没有计算机A的管理员权限,所以我可能无法在其上安装SSH服务器或“安装”计算机B(这是否意味着创建网络?)。

也许我可以给自己发一封来自R的电子邮件?说“计算到达这一点,这是迄今为止的输出......”

我刚刚发现here这可能很容易设置。显然你甚至可以从R推特!

2 个答案:

答案 0 :(得分:2)

如果我理解你的问题,你应该能够通过ssh和tmux(或屏幕)的组合很容易地做到这一点。

计算机A必须运行ssh服务器。

user@computerB$ ssh computerA.domain.com
user@computerA$ tmux new
user@computerA$ R
> source("myAnalysis.R")
...

Ctrl-b d分离然后Ctrl-d断开与计算机A的连接。现在您可以关闭计算机,去散步,等等。然后:

user@computerB$ ssh computerA.domain.com
user@computerA$ tmux a
>

R仍将继续运行。

答案 1 :(得分:0)

如果在批处理模式下运行R而不中断作业,则应该能够打开.Rout文件。复制并打开副本是非常安全的。至于复制输出,最简单的方法是编写一个bash脚本以批处理模式运行R,然后在作业完成后scp输出文件。