CRON没有执行R脚本文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CRON没有执行R脚本文件相关的知识,希望对你有一定的参考价值。
我试图自动运行存储在桌面文件夹(cron_test)上的R中的脚本(test.R)。我在我的mac终端中使用CRON。示例R脚本生成随机数,绘制它们并将它们保存为PDF:
setwd("~/Desktop/cron_test")
pdf("example_plot.pdf", width = 8, height = 8)
plot(rnorm(100))
dev.off()
我的CRON代码尝试每分钟调用一次,但文件夹中没有任何内容:
* * * * * Rscript /Users/username/Desktop/cron_test/test.R
什么都没有产生。我尝试过以下方法:
- 如果我从终端调用它,该文件运行正常,表明代码没有问题:
Rscript /Users/username/Desktop/cron_test/test.R
- 我还确保(并仔细检查)该文件的权限具有可执行权限,如qazxsw poi: qazxsw poi
- 我也从这个答案中尝试了另一个提出的解决方案,即创建一个调用R脚本的shell文件。这也行不通。
我收到邮件说明CRON任务已经运行,但我的cron_test文件夹中没有输出。
答案
邮件是否说
this proposed answer to a similar issue
?
如果是这样,请尝试使用chmod 777 /Users/username/Desktop/cron_test/test.R
的完整路径。你可以从终端找到这个
/bin/sh: Rscript: command not found
这样做的原因是,与交互式终端相比,您在cron会话中获得的环境要小得多。您可以通过比较输出来检查这一点
Rscript
和cron工作
$ which Rscript
通过计算每个文件中的行数,我们可以看到它们完全不同。
$ /usr/bin/env > env-interactive
特别是cron作业中的shell可执行搜索路径(* * * * * /usr/bin/env > env-cron
)要短得多
$ wc -l env-interactive,cron
20 env-interactive
8 env-cron
(使用完整路径$PATH
在我的macos High Sierra笔记本电脑上为我工作,并制作了情节。)
以上是关于CRON没有执行R脚本文件的主要内容,如果未能解决你的问题,请参考以下文章