2013-02-10 42 views
4

我在使用Rscript通过crontab尝试运行我的R脚本时遇到问题。在命令行R通过crontab运行时找不到一些软件包

Rscript /var/www/html/sent/sentiment/code/parse.r 

但是这里面crontab

*/5 * * * * Rscript /var/www/html/sent/sentiment/code/parse.r > /var/www/html/sent/sentiment/code/backup.log 2>&1 

以下行运行后会返回以下错误日志

Error in library(twitteR) : there is no package called 'twitteR' 
Execution halted 

在当

下面的命令工作正常为什么Rscript可能无法找到该软件包当使用cron运行时? 我怎样才能让crontab'看'我的R包。

任何提示非常感谢。

+0

我首先运行'which Rscript'作为你自己和crontab,看看你是否都使用相同的安装。 – flodel 2013-02-10 02:01:47

+0

谢谢,我会做测试。为了运行它作为crontab有一个命令作为crontab运行或我只是将其添加到我的脚本并将输出保存到日志文件? – JordanBelf 2013-02-10 02:04:25

+0

可能有更好的方法,但我只是安排'* * * * *哪个Rscript>/tmp/Rscript.path'。 – flodel 2013-02-10 02:05:34

回答

4

正如评论中所建议的那样,问题可能是您和您的crontab正在使用不同的R安装。

要检查是否是这种情况,请运行which Rscript作为自己并作为crontab。

如果它们不同(我怀疑它),那么当您从crontab调用它时,可以使用适当的Rscript的完整路径。更持久的解决方案需要设置环境变量。

+0

你如何运行'哪个Rscript'作为crontab而不是你自己? – 2018-03-07 03:54:43

1

它很可能是您的.libPath()设置 - 这就是为什么我要测试Debian/Ubuntu包来使用系统范围而不是每个用户的设置。

要检查,运行和你一样也来自同一个crontab的

print(.libPaths()) 
print(installed.packages()) 

的差异应该很清楚。我想我在这里回答了一个几乎相同的问题。

相关问题