由Whenever生成的Cron不起作用

时间:2014-08-28 11:45:24

标签: ruby-on-rails cron whenever

似乎我的cron任务不起作用。 以下是" contrab -l"

的结果
# Begin Whenever generated tasks for: /home/mtaville/mtaville_staging/releases/20140827132856/config/schedule.rb
* * * * * /bin/bash -l -c 'cd /home/mtaville/mtaville_staging/releases/20140827132856 && RAILS_ENV=staging bundle exec rake events:archive_outdated_event --silent'

# End Whenever generated tasks for: /home/mtaville/mtaville_staging/releases/20140827132856/config/schedule.rb

以下是一些日志文件行:

Aug 28 13:42:01 67872hd63015 CRON[489]: (mtaville) CMD (/bin/bash -l -c 'cd /home/mtaville/mtaville_staging/releases/20140827132856 && RAILS_ENV=staging bundle exec rake events:archive_outdated_event --silent')
Aug 28 13:42:18 67872hd63015 crontab[495]: (mtaville) LIST (mtaville)
Aug 28 13:43:01 67872hd63015 CRON[498]: (mtaville) CMD (/bin/bash -l -c 'cd /home/mtaville/mtaville_staging/releases/20140827132856 && RAILS_ENV=staging bundle exec rake events:archive_outdated_event --silent')

当我复制/通过日志代码时:

/bin/bash -l -c 'cd /home/mtaville/mtaville_staging/releases/20140827132856 && RAILS_ENV=staging bundle exec rake events:archive_outdated_event --silent'

它有效!

问题是什么?

cron文件是由Whenever of Ruby on Rails生成的。

修改 我有这个到我的crontab

* * * * * cd && touch .it_works

而且......它有效......

2 个答案:

答案 0 :(得分:0)

你告诉linux要做什么作为cronjob的一部分。但是你还没有开始使用cronjob。启动cronjob /etc/init.d/crond start。

答案 1 :(得分:0)

仅针对有问题的人:

创建工作类型:

job_type :rbenv_rake, %Q{export PATH="$HOME/.rbenv/bin:$PATH" ; eval "$(rbenv init -)" ; cd :path && :environment_variable=:environment bundle exec rake :task --silent :output }

使用它:

rbenv_rake "cars:import"