在RStudio中运行cron作业

时间:2018-06-30 11:42:39

标签: r cron rstudio

我正在尝试通过EC2实例上的RStudio安排cron作业。
当我使用具有非常基本功能的基本脚本时,它可以正常工作。 但是,当我要调度包含特定R包中的R函数的脚本时,这些脚本将失败。

我的cron看起来像这样:

MAILTO="myemail@adress.com"
36 * * * * /home/user1/Test_for_Cron.R

启动脚本后,我收到Cron Daemon的电子邮件,内容如下:

  

R_function 中的错误:     找不到函数 R_function
  执行停止

从发现的内容来看,似乎我必须指定我要在RStudio中运行脚本,还是要“获取”该脚本。
我觉得答案可能是下面这3个帖子的组合,但是在测试了一些建议后我找不到解决方案:

Check if R is running in RStudio
Cron job for an R script failing
R command for setting working directory to source file location in Rstudio

不胜感激!

2 个答案:

答案 0 :(得分:4)

您误解了cron和shell命令的工作方式-R文件不可执行(除非您对其进行更改,请参见下文)。

但是如果您仅将其前缀为Rscript,则可以 1.在您的外壳中测试它,直到它起作用 2.由cron执行它,

36 * * * * Rscript /home/user1/Test_for_Cron.R

编辑:如果执行以下两项操作,则可以使其可执行:

  • 添加shebang#!/usr/bin/Rscript(或指向Rscript的路径)
  • 通过chmod 755 Test_for_Cron.R将模式更改为可执行文件,该模式为您(所有者)设置读取/写入/执行,为组和其他用户设置读取/执行。

答案 1 :(得分:0)

谢谢德克。 是的,我确实已经向脚本添加了#!/usr/bin/Rscript。 问题实际上来自一个简单的事实,即我的脚本中未加载某些库,从而导致错误并停止了该脚本。 现在所有库都已加载,一切正常!