From: Wybo Dekker Date: 2012-06-04T05:29:05+09:00 Subject: Re: rvm - how to run a ruby script via crontab? On 2012-06-02 22:03, Florian Gilcher wrote: > > On Jun 2, 2012, at 9:35 PM, Arun Tomar wrote: > >> On 06/03/2012 12:57 AM, Wybo Dekker wrote: >>> I have, for the first time, installed ruby using rvm. >>> I run my backups via crontab, calling a bash script that runs a ruby >>> script. However, that script now tell me that it doesn't know about ruby. >>> So I entered two lines in the bash script: >>> >>> RVM=/usr/local/rvm/scripts/rvm >>> test -e $RVM && source $RVM >>> >>> and it runs OK; but it seems to me that this is not the way it should be >>> done. Is it? >>> >> >> Cron runs as sh shell. it doesn't read bashrc or profile.d files like >> rvm.sh. so it will not know where to find ruby that's installed in rvm. >> >> for one of our project this is how we've been running things: >> >> Note : We recommend to add cron job for checking the available network connections. Add following into the crontab : >> */5 * * * * bash -c 'source /etc/profile.d/rvm.sh && /usr/bin/env ruby /usr/local/rvm/gems/ruby-1.9.3-p125/bin/ispunity monitor' >> >> also have a look at this >> >> https://rvm.io/integration/cron/ > > Newer RVMs also have a script called `rvm_shell`. > > $RVM_INSTALL_LOCATION/bin/rvm_shell 1.9.3 -c 'ispunity monitor' That would better, because calling something containing the 1.9.3-p125 would have to be changed with every change of the ruby version. However, although I suppose I have the newest rvm (1.14.0), I have no rvm_shell > > (or similar) should work. > > If you have a system level RVM, it should be rather easy. > > Regards, > Florian -- Wybo