Ruby Cron作业未运行?
我的cron任务不会完成。在过去的几个小时里,我一直在不停地旋转轮子 我的crontab中有一行:Ruby Cron作业未运行?,ruby,cron,crontab,Ruby,Cron,Crontab,我的cron任务不会完成。在过去的几个小时里,我一直在不停地旋转轮子 我的crontab中有一行: * * * * * /usr/local/rvm/rubies/ruby-2.0.0-p195/bin/ruby /home/pra/grinder/misc_scripts/daily_total_logger.rb 我可以运行以下命令: /usr/local/rvm/rubies/ruby-2.0.0-p195/bin/ruby /home/pra/grinder/misc_scripts/
* * * * * /usr/local/rvm/rubies/ruby-2.0.0-p195/bin/ruby /home/pra/grinder/misc_scripts/daily_total_logger.rb
我可以运行以下命令:
/usr/local/rvm/rubies/ruby-2.0.0-p195/bin/ruby /home/pra/grinder/misc_scripts/daily_total_logger.rb
它工作起来没问题
我将其设置为每分钟运行一次,这样我就可以查看日志,并且可以在日志(/var/log/cron)中看到这一点:
我已经在两个不同的服务器上复制了相同的行为(在愚弄了一个小时的脚本后,我想我应该把它移到另一个服务器上,但问题是相同的)
我还试过一件事。创建另一个具有与其他操作相同权限的ruby文件(将日期时间附加到文件)。我用以下代码创建了/home/pra/grinder/misc_scripts/test.rb
open('/home/log.log', 'a') do |f|
f.puts Time.now.to_s
end
而且效果很好。快速检查权限显示两个文件具有相同的权限
-rw-r--r--. 1 root root 348 Dec 19 00:52 daily_total_logger.rb
-rw-r--r--. 1 root root 61 Dec 19 01:13 test.rb
我知道最好不要在根目录下运行,我只是想消除所有潜在的问题。我一辈子都不知道是什么原因造成的。我简化了脚本,但这个超级简单脚本仍然存在相同的错误:
require 'pg'
conn = PG.connect(dbname: '***',user: '***',password: '***', host: '***')
query = "INSERT INTO foobar (foo, bar) VALUES (1, 3)"
conn.exec(query)
puts "Done..."
如果我从命令行运行它,它可以正常工作。如果我将其作为cron作业运行,则无法完成。我完全被搞糊涂了——两台服务器,一台debian,一台redhat上都有同样的问题。。。任何帮助都将不胜感激。我追溯到这一行:
require 'pg'
如果我在脚本中需要该库,那么脚本的其余部分在作为cron作业调用时将停止运行,但在从命令行调用时可以正常工作。关于这方面的更多信息,我在这里更好地记录了这个问题(希望有人能解释为什么会发生这种情况):
require 'pg'