ruby script under cron

I have a number of custom scripts that run at the console. Now I want cron to take over and run them on a daily basis. If I /usr/bin/run-parts /etc/cron.daily at the console all jobs run fine. However, if I leave it to cron and check next day there was no indication the scripts had run at all. No change in output to log.

I wonder if ruby is not able to run under the cron shell (is it that different than sh?).

Has anyone had to deal with this or can offer a suggestion?

Thanks,

Long

I have several rails scripts that run

    ruby /dir/to/app/script/runner 'Actions'

and they run just fine. This is on Arch Linux. If you can run them through the cron command manually, I don't see why it wouldn't work from crond. Could it be some sort of permissions issue?

Jason

Long wrote:

Jason Norris wrote:

I have several rails scripts that run

    ruby /dir/to/app/script/runner 'Actions'

and they run just fine. This is on Arch Linux. If you can run them through the cron command manually, I don't see why it wouldn't work from crond. Could it be some sort of permissions issue?

Jason,

Well crond runs as root so I don't think permission is the problem. The difference seems to be in how I run the script.

ruby /path/script/my_script

Now that you mention it I vaguely recall reference to runner usage. Let see if I have this right.

I should     ruby script/generate task my_script then     ruby /path/script/runner 'MyScript' to run it.

Any thoughts?

Thanks,

Long

Jason Norris wrote: > > I have several rails scripts that run > > ruby /dir/to/app/script/runner 'Actions' > > and they run just fine. This is on Arch Linux. If you can run them > through the cron command manually, I don't see why it wouldn't work from > crond. Could it be some sort of permissions issue? > Jason,

Well crond runs as root so I don't think permission is the problem. The difference seems to be in how I run the script.

ruby /path/script/my_script

Now that you mention it I vaguely recall reference to runner usage. Let see if I have this right.

I should     ruby script/generate task my_script

hmm... there is no 'task' script. See ruby script/generate --help. Also found this link

http://wiki.rubyonrails.org/rails/pages/HowToRunBackgroundJobsInRails/

Long

Hi, Long,

Search the archive of this list for “cron mazel tov” and read to the end of that thread. It might help.

Zachary Holt wrote:

Hi, Long,

Search the archive of this list for "cron mazel tov" and read to the
end of that thread. It might help.

I searched on gmane and only found the last posting. But did find many postings when search with "cron".

I believe my scripts were missing the ruby initialization line.

#!/usr/bin/env ruby require File.dirname(__FILE__) + '/../config/boot' Line taken from script/generate and the likes.

I already had the require environment line needed to access my models.

require File.dirname(__FILE__) + '/../config/environment'

I think I will create a utility class and put all my scripts there. It will help clean up my code for sure. Then I can use script/runner to start the process. In this way all scripts will run under one rails env instead of a separate one for each.

Thanks again everyone,

Long