使用crontab使用脚本执行Rails

使用crontab使用脚本执行Rails,cron,rvm,Cron,Rvm,我正在尝试运行一个ruby脚本,我可以从我的主目录使用ruby很好地运行它,但是使用cron失败了。脚本autocheck.rb的开头如下所示: require 'rubygems' require 'mechanize' require 'json' require "active_record" ActiveRecord::Base.establish_connection( :adapter => "postgresql", :encoding => "utf8",

我正在尝试运行一个ruby脚本,我可以从我的主目录使用ruby很好地运行它,但是使用cron失败了。脚本autocheck.rb的开头如下所示:

require 'rubygems'
require 'mechanize'
require 'json'
require "active_record"

ActiveRecord::Base.establish_connection(
  :adapter => "postgresql",
  :encoding => "utf8",
  :database => "depot_development",
  :pool => "5",
  :username => "depot",
  :password => "fake_pwd")
*/15 08-17 * * 1-5 ruby /home/user/autocheck.rb
crontab如下所示:

require 'rubygems'
require 'mechanize'
require 'json'
require "active_record"

ActiveRecord::Base.establish_connection(
  :adapter => "postgresql",
  :encoding => "utf8",
  :database => "depot_development",
  :pool => "5",
  :username => "depot",
  :password => "fake_pwd")
*/15 08-17 * * 1-5 ruby /home/user/autocheck.rb

我检查了与cron和rvm相关的其他条目(假设这就是问题所在;我使用的是rvm和ruby版本1.9.3),但我没有找到解决方案。任何帮助都将不胜感激。

RVM有一个命令可以为您设置日程安排:

rvm cron command "*/15 08-17 * * 1-5" ruby /home/user/autocheck.rb

ruby
替换为系统中
ruby
的完整路径(
/bin/ruby
或诸如此类的内容)。正如所写,这不起作用,但我最终找到了一种方法。我在crontab shell的开头添加了这一行,如下所示:shell=/home/user/.rvm/bin/rvm shellyes这将起作用,需要注意的是,它将使用默认值,如果没有默认值,ruby可能会出现意外错误。对于失败的命令-请为其打开RVM票证=>