【问题标题】:Schedule a Rscript crontab everyminute每分钟安排一次脚本 crontab
【发布时间】:2016-08-04 23:06:36
【问题描述】:

由于某种原因,我的 R 脚本无法使用 crontab 运行。我现在每分钟都有它进行测试,但一旦它工作就会改变它。

有什么想法吗?

* * * * * Rscript “/Users/Home/Desktop/David Studios/Scraper/compiler.R”

此外,这只是终端中的普通命令。

【问题讨论】:

    标签: r terminal cron crontab


    【解决方案1】:

    我可以在您的 cron 条目中看到可怕的 smart quotes。当您从文字处理器复制粘贴时,通常会发生这种情况。在这些可憎的地方退格并重新输入正常引号。变化:

    * * * * * Rscript “/Users/Home/Desktop/David Studios/Scraper/compiler.R”
    

    * * * * * Rscript "/Users/Home/Desktop/David Studios/Scraper/compiler.R"
    

    看到区别了吗?它很微妙,很容易错过。

    更新:

    我看到您已经进行了上述更改,但它仍然不适合您。验证 Rscript 是否在拥有此 crontab 的用户的 $PATH 环境变量中。或者,您可以直接在 cron 条目中指定 Rscript 的完全限定路径。您可以使用以下命令在命令行上快速找到它:

    which Rscript
    

    更新 #2:

    我从您的 cmets 看到 Rscript 的完全限定路径是 /usr/local/bin/Rscript。我猜/usr/local/bin 不在拥有此 crontab 的用户的路径中。尝试使用完全限定路径,如下所示:

    * * * * * /usr/local/bin/Rscript "/Users/Home/Desktop/David Studios/Scraper/compiler.R"
    

    【讨论】:

    • 我已经进行了更新,但仍然没有骰子......还有其他想法吗?
    • Rscript 是否在拥有此 crontab 的用户的路径中?如果您指定Rscript 的完全限定路径,它是否有效?
    • 我认为这就是我被卡住的地方。我已经重新安装了 R,但我认为这不起作用。有没有办法在命令中声明路径?
    • 它是/usr/local/bin/Rscript
    • 好的,所以尝试将您的 crontab 条目更改为 * * * * * /usr/local/bin/Rscript "/Users/Home/Desktop/David Studios/Scraper/compiler.R"
    【解决方案2】:

    检查您是否真的在运行 crontab 守护程序。你应该得到一个数字作为返回,它是 crontab 的进程 ID。

    pgrep cron
    

    确保你的 R 文件是可执行的:

    sudo chmod +x [yourfile.R]
    

    在你的 R 文件中添加 shebang 行:

    #!/usr/local/bin/Rscript
    

    让crontab做目录的改变:

    * * * * * cd /Users/Home/Desktop/David Studios/Scraper/ && /usr/local/bin/Rscript compiler.R
    

    【讨论】:

      【解决方案3】:

      R 中的工作目录可能有问题。

      当您从终端运行脚本时,您可能位于脚本所需文件所在的目录中,但当脚本使用 cron 运行时,它会使用另一个目录。

      在 R 脚本中使用 setwd() 函数或在访问文件时使用绝对路径,以确保无论在何处使用脚本都能正常工作。

      【讨论】:

      • 似乎是一个合理的猜测。这个三年前的问题实际上太宽泛了,无法明确回答 - 引发讨论和猜测。
      猜你喜欢
      • 1970-01-01
      • 2016-11-21
      • 1970-01-01
      • 1970-01-01
      • 2014-12-26
      • 2018-11-10
      • 1970-01-01
      • 2014-03-07
      • 1970-01-01
      相关资源
      最近更新 更多