I have a ruby script that I am trying to set up on a cronjob. I have
tested it both just running it in the normal mode and a test shell mode.
When I am logged in as a normal user or in ‘env -i $SHELL --norc’ I will
run ruby /home/salinn/dev/ruby/webmail/script.rb and it works in both
environments. Could someone help point me out what I am doing wrong?
I have a ruby script that I am trying to set up on a cronjob. I have
tested it both just running it in the normal mode and a test shell mode.
When I am logged in as a normal user or in ‘env -i $SHELL --norc’ I will
run ruby /home/salinn/dev/ruby/webmail/script.rb and it works in both
environments. Could someone help point me out what I am doing wrong?
My crontab looks like this:
ruby /home/salinn/dev/ruby/webmail/script.rb
To make sure it is not an issue with the PATH environment variable
(cron may have its own?), try invoking Ruby with the full path,
e.g. /usr/bin/ruby (you can find out with ‘which ruby’).
To make sure it is not an issue with the PATH environment variable
(cron may have its own?), try invoking Ruby with the full path,
e.g. /usr/bin/ruby (you can find out with ‘which ruby’).
Regards,
Marcus
cron uses a very minimal path.
you may need to explicitely set the PATH at the top of your crontab, or
give the full path to any exes that you utilize
I have tried to give it the specific Path to ruby and loadingin the path
from the profile I am using. It is still not working only when I run it
as a cronjob.
I have tried to give it the specific Path to ruby and loadingin the path
from the profile I am using. It is still not working only when I run it
as a cronjob.
cd /home/${user}
. /home/${user}/.profile
envfile=/usr/local/rvm/bin/rvm env --path
. $envfile
$*
cmdsts=$?
if [ $cmdsts -ne 0 ]; then
exitsts=1
echo “cronit: ERROR”
echo “quitting $lclcmd”; exit $exitsts
fi
exit $exitsts
–
If you have received the message in error, please advise the sender by
reply email and please delete the message. This message contains
information which may be confidential or otherwise protected. Unless
you are the addressee (or authorized to receive for the addressee), you
may not use, copy, or disclose to anyone the message or any information
contained in the message.
to see the environment your cronjob is actually running in. After that
cronjob runs, the file should appear in your home directory. You can
remove the cronjob after that. Inspect the environment, see if there’s
anything missing you need.
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.