2

使用 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 中没有尝试过任何工作。有任何想法吗?

4

3 回答 3

3

您需要在 foo.sh 中包含完整路径:

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

我还应该补充一点,第一个版本对我有用,尽管我将它设置为特定时间而不是* * * * *

于 2012-08-18T00:43:50.197 回答
1

这里值得一提的是 CRANberries 条目,它每天(多次)工作了 5 年以上:

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

这里值得注意的是

  1. 时间规范,这里每两个小时过去 11 分钟
  2. 用户
  3. 完整路径,使用 'globbing'扩展~$HOMEedd

之后,您只需要确保脚本实际上是可执行的。无论您使用 Rscript、litter 还是 R BATCH CMD 都无关紧要。

于 2012-08-18T01:22:26.333 回答
1

在我的用户级 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

它适用于我的目的。

鲍勃

于 2015-05-07T16:53:29.213 回答