【问题标题】:Running R script daily using crontab in OSX每天在 OSX 中使用 crontab 运行 R 脚本
【发布时间】:2017-01-18 01:35:02
【问题描述】:

我想设置一个 crontab,在周一至周五每天下午 5 点运行 emailSender.R 脚本。

emailSender.R的脚本如下:

library(rmarkdown)

rmarkdown::render("htmlmarkdown.Rmd")


library(gmailR)
gmailR::gmail(
  to =c("recipient@email.com"),
  subject = "Subject",
  message = "Message",
  username = "me@email.com",
  password = "password",
  attachment = "htmlmarkdown.html"
)

然后我打开终端,首先输入 crontab -e 来设置 crontab。

然后弹出一个窗口,我尝试使用以下代码设置我的 cronjob。

0 17 * * * Rscript /Users/username/emailSender.R

很遗憾,emailSender.R 没有按计划运行。

非常感谢任何有关获取 crontab 来安排我的 R 脚本的帮助

编辑:回到我的终端并输入 Rscript 后,系统会提示我:

-bash: Rscript: command not found

也许我必须在我的 PATH 中设置 Rscript,然后 cron 才能设置任务。尽管进行了广泛的搜索,但不确定如何做到这一点。

【问题讨论】:

  • 就我个人而言,我使用 cron GUI(在 Linux 上,它被称为计划任务)来设置我的 cron 作业,并让它运行 bash r_script_runner.sh。该文件的第一行只有#! /bin/bash 和path/to/r_script.R。这工作正常。
  • 感谢我尝试在 OSX 上使用 cronnix GUI,但也无法正常工作。
  • 按 Escape 退出插入模式,然后输入 :wq 写入并退出。
  • 在终端中键入 which Rscript 以查找它的安装位置,然后在您的 crontab 中使用该完整路径,而不是普通的 Rscript。
  • 如果您希望使用图形编辑器来编辑您的 crontab,请在运行 crontab -e...export EDITOR=/Applications/TextEdit.app/Contents/MacOS/TextEdit之前执行此操作

标签: r macos cron crontab


【解决方案1】:

尝试安装 cronR 包。

完成此操作后,您应该能够导航到工具 > 插件,您可以在其中执行包。它将调出一个调度程序,让您可以安排脚本运行的时间。

如果您有权限问题,请转到系统偏好设置 > 安全 > 隐私。单击“全盘访问”并授予 RStudio/R 访问权限。这应该允许您安排作业在将来运行。

【讨论】:

    【解决方案2】:

    你需要包含Rscript的路径:

    0 17 * * * /usr/local/bin/Rscript /Users/username/emailSender.R
    

    【讨论】:

      【解决方案3】:

      在开头添加此代码:

      Sys.setenv(RSTUDIO_PANDOC="/usr/lib/rstudio-server/bin/pandoc")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-14
        • 2023-03-03
        • 1970-01-01
        • 2017-08-31
        • 2021-09-10
        • 2011-07-05
        • 1970-01-01
        相关资源
        最近更新 更多