【问题标题】:Run cron job within RStudio在 RStudio 中运行 cron 作业
【发布时间】:2018-12-09 09:45:56
【问题描述】:

我正在尝试通过 RStudio 在 EC2 实例上安排一个 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

帮助非常感谢!

【问题讨论】:

  • 也许可以尝试通过打印 Sys.info() 来启动脚本,以检查 cron 是否找到了正确的 R 二进制文件(和库)——我有类似这个问题的问题 + 问题是 cron 找到了错误的R的版本
  • 当我执行 sys.info() 时,我看不到任何关于 R 库的信息
  • 哎呀,试试.libPaths()R.version -- 会有相关信息

标签: r cron rstudio


【解决方案1】:

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

但是如果你只是在前面加上 Rscript 你可以 1.在你的shell中测试它直到它工作 2. 由cron 执行,这样做

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

编辑:如果你做两件事,你可以让它可执行:

  • 添加shebang#!/usr/bin/Rscript(或Rscript 的任何路径)
  • 通过chmod 755 Test_for_Cron.R 将模式更改为可执行,它为您(所有者)设置读/写/执行,为组和其他人设置读/执行。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-07-22
      • 2018-06-25
      • 2017-11-03
      • 1970-01-01
      • 1970-01-01
      • 2014-04-04
      • 2021-07-28
      • 2016-11-26
      • 2015-01-05
      相关资源
      最近更新 更多