我正在尝试使用 Whenever gem在Amazon EC2上设置CRON作业。
在schedule.rb
中有以下内容:
set :output, "/home/my_deploy_name/my_deploy_name/current/log/cron_log.log"
every 2.minutes do
puts "It's working !!!"
end
并在deploy.rb
这个:
...
set :whenever_command, "bundle exec whenever"
require "whenever/capistrano"
after 'deploy:create_symlink', 'whenever:update_crontab'
after 'deploy:rollback', 'whenever:update_crontab'
当我将此代码部署到EC2并检查crontab -l
时,输出为:
no crontab for ubuntu
当我运行crontab -e
时,不会编辑该文件。
这里有什么问题? CRON工作每2分钟没有在EC2上运行什么?
答案 0 :(得分:0)
尝试的一些选项:
1)登录服务器并运行:
bundle exec whenever --update-crontab
并检查你的crontab。
2)您无需设置before
和after
回调。 capistrano食谱为你做到了:
https://github.com/javan/whenever/blob/master/lib/whenever/capistrano.rb
Capistrano::Configuration.instance(:must_exist).load do
# Write the new cron jobs near the end.
before "deploy:finalize_update", "whenever:update_crontab"
# If anything goes wrong, undo.
after "deploy:rollback", "whenever:update_crontab"
end