Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Schedule a Rscript crontab everyminute

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.

like image 568
frameworkgeek Avatar asked Aug 04 '16 23:08

frameworkgeek


People also ask

Can you schedule r scripts?

In recent versions of RStudio (0.99. 893 or later), select Addins and next select 'Schedule R scripts on Windows'. This will allow you to select a script to be scheduled at your specified timepoints. The script will be copied to the Rscript repo folder and will be launched from there each time.


2 Answers

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"
like image 173
Asaph Avatar answered Oct 06 '22 01:10

Asaph


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
like image 39
Toolbox Avatar answered Oct 06 '22 03:10

Toolbox