2013-02-10 43 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()) 

的差異應該很清楚。我想我在這裏回答了一個幾乎相同的問題。

相關問題