我在运行 cronjob 时遇到问题。没有这方面的经验,所以可能监督一些nooby。当从 shell 运行时,以下脚本就像一个魅力(所有旧过滤器都从 db 中删除):
dude@linux:~> /usr/bin/env /home/dude/RubyOnRails/myproject/script/rails runner /home/dude/RubyOnRails/myproject/script/delete_old_filters.rb
我使用 chmod 使脚本可执行。现在我希望它使用 cronjob 定期运行:
dude@linux:~> crontab -e
这个文件是空的,我把它放在一行上:
* * * * * /usr/bin/env /home/dude/RubyOnRails/myproject/script/rails runner /home/dude/RubyOnRails/myproject/script/delete_old_filters.rb
我希望脚本每分钟运行一次,但没有任何反应。在 /etc/cron.deny 中,只提到了“guest”,并且 /etc/allow 不存在。重新启动我的系统也没有帮助。
crontab 似乎被探测地更新了:
dude@linux:~> crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.f9Et2M installed on Thu May 3 14:04:47 2012)
# (Cronie version 4.2)
* * * * * /usr/bin/env /home/dude/RubyOnRails/myproject/script/rails runner /home/dude/RubyOnRails/myproject/script/delete_old_filters.rb
但我也有点期待:
dude@linux:~> atq
dude@linux:~>
cronjob 做了一些事情。每分钟都会向 /var/log/cron.log 添加一个条目:
2012-05-03T15:27:01+02:00 linux /USR/SBIN/CRON[5276]: (dude) CMD (/usr/bin/env /home/dude/RubyOnRails/myproject/script/rails runner /home/dude/RubyOnRails/myproject/script/delete_old_filters.rb)
问题是,作业没有执行。它应该从数据库中删除一些记录,但它没有。手动运行相同的脚本就可以了。
有人看到我错过的(也许是微不足道的)事情吗?