如何在crontab中运行R脚本

时间:2012-08-18 00:40:46

标签: r crontab

使用crontab -e我试过了:

* * * * *  Rscript /home/.../file.r
* * * * * /usr/lib/R/bin/Rscript /home/.../file.r
* * * * * /usr/bin/Rscript /home/.../file.r
* * * * * /home/.../foo.sh

其中foo.sh包含:

sudo R CMD BATCH file.r

只需运行$ ./foo.sh即可。 $ R CMD BATCH file.r有效。

我在crontab中没有尝试过任何工作。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您需要在foo.sh中拥有完整路径:

sudo R CMD BATCH /home/.../file.r

我还应该补充一点,第一个版本适用于我,虽然我将其设置为特定时间而不是* * * * *

答案 1 :(得分:0)

这里值得一提的是CRANberries入门,每天工作多次(多次)5年以上:

# every few hours, run cranberries
11 */2 * * *    edd     ~/cranberries/cranberries.r

这里需要注意的是

  1. 时间规格,这里每两小时超过一小时11分钟
  2. 用户
  3. 完整路径,使用'globbing'将~扩展为$HOME <{1}}
  4. 然后你必须确保脚本实际上是可执行的。无论你使用Rscript,littler还是R BATCH CMD都没关系。

答案 2 :(得分:0)

在我的用户级crontab中我运行一个R脚本来收集各种来源的推文。

我用过: 的 crontab -u myusername -e 将此添加到我的crontab文件的末尾

<强> 0 0 * * * /home/bob/Documents/SWtweets/tweetbash.sh

我是以root用户身份运行它,不知道它有什么不同,但它只适用于我在用户级别运行时。

下面是我在tweetbash.sh shell脚本中添加的内容, 它告诉bash程序运行位于指示路径的R脚本。

<强> #! /bin/bash R CMD BATCH /home/bob/Documents/SWtweets/tweets.R

chmod +x tweetbash.sh

它适用于我的目的。

鲍勃