Schedule a Rscript crontab everyminute

◇◆丶佛笑我妖孽 提交于 2020-01-23 11:43:44

问题


For some reason my R script will not run with a crontab. I have it for every minute right now for testing, but will change it once it works.

Any ideas?

* * * * * Rscript “/Users/Home/Desktop/David Studios/Scraper/compiler.R”

Also, this was working as just a normal command in Terminal.


回答1:


I can see the dreaded smart quotes in your cron entry. This often happens when you copy-paste from word processors. Backspace over those abominations and re-type normal quotes. Change:

* * * * * Rscript “/Users/Home/Desktop/David Studios/Scraper/compiler.R”

to

* * * * * Rscript "/Users/Home/Desktop/David Studios/Scraper/compiler.R"

See the difference? It's subtle and easy to miss.

Update:

I see you've made the above change and it's still not working for you. Verify that Rscript is in the $PATH environment variable for the user that owns this crontab. Alternatively, you can simply specify the fully qualified path to Rscript directly in the cron entry. You can find that quickly on the command line with the following command:

which Rscript

Update #2:

I see by your comments that the fully qualified path to Rscript is /usr/local/bin/Rscript. I'm guessing /usr/local/bin is not in the path for the user who owns this crontab. Try using the fully qualified path, like this:

* * * * * /usr/local/bin/Rscript "/Users/Home/Desktop/David Studios/Scraper/compiler.R"



回答2:


Check that you are really running crontab deamon. You should get a number as return, which is the process id for crontab.

pgrep cron

Make sure your R file is execuable:

sudo chmod +x [yourfile.R]

Add the shebang line in your R file:

#!/usr/local/bin/Rscript

Let crontab do the change of directory:

* * * * * cd /Users/Home/Desktop/David Studios/Scraper/ && /usr/local/bin/Rscript compiler.R



回答3:


You might have a problem with the working directories in R.

When you run the script from the terminal you might be in the directory where the files the script needs are, but when the script runs with cron it uses another directory.

Use the setwd() function inside the R script or use absolute paths when accesing files to make sure the script works no matter where it is being used.



来源:https://stackoverflow.com/questions/38778732/schedule-a-rscript-crontab-everyminute

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!