2016-06-29 3 views
0

Я пытаюсь сделать простой хрон выполнения этой задачи: Вот мой schedule.rb:Всякий раз, когда cronjobs не работает на постановку

set :environment, "staging" 
set :path, "/var/www/my_app/current" 
every 2.minutes do 
    # specify the task name as a string 
    rake 'cron_test' 
end 

Вот задача:

task :cron_test => :environment do 
    out_file=File.new("cron_test.txt", "w") 
    out_file.puts(Time.now.to_s) 
    out_file.close 
end 

Я старался делать то, что рекомендуется на этой странице, но ничего не работает: Cron job not working in Whenever gem

Когда я запускаю crontab -l:

# Begin Whenever generated tasks for: /var/www/my_app/current/config/schedule.rb 
0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * * /bin/bash -l -c 'cd /var/www/my_app/current && RAILS_ENV=staging bundle exec rake cron_test' 

# End Whenever generated tasks for: /var/www/my_app/current/config/schedule.rb 

Когда я бегу Grep CRON/уаг/Журнал/системный журнал:

Jun 29 17:22:01 my_server CRON[21164]: (root) CMD (/bin/bash -l -c 'cd /var/www/my_app/current && RAILS_ENV=staging bundle exec rake cron_test') 

Есть идеи?

Благодаря

ответ

0

Что происходит, когда вы вручную запустить команду из кронтаба на консоли? Попробуйте запустить. Посмотрите, есть ли какие-либо ошибки.

/bin/bash -l -c 'cd /var/www/my_app/current && RAILS_ENV=staging bundle exec rake cron_test' 

Может быть что-то с местной или cron-окружностью. Также журналы были бы замечательными, фиксируя любые запущенные ошибки. Вы можете установить выходной журнал для захвата любых проблем с помощью команды crontab.

set :output, '/path/to/file.log' 

для вас, например:

set :output, '/var/log/my_app.cron.log' 
set :environment, "staging" 
set :path, "/var/www/my_app/current" 
every 2.minutes do 
    # specify the task name as a string 
    rake 'cron_test' 
end 

Here's the documentation whenever output redirection

0

Благодаря она работает сейчас

Когда я создал /var/log/staging_cron.log я прочитал это:

/bin/bash: bundle: command not found 

Я добавил env :PATH, ENV['PATH'] на первой линии моей schedule.rb, обновил кронтаб (когда это --update-кронтаб), и теперь мой тестовый файл хорошо создан и обновлен.

+0

рад, что вы его решили –

Смежные вопросы