0

Я использую всякий раз, когда я настраивал свой crontab и планировал задания cron. мой конфигурационный файл/schedule.rb имеет следующее содержание:расписание cron job on aws beanstalk rails container

set :environment, "test" 
set :output, {:error => "/var/log/cron_error.log", :standard => "/var/log/cron_log.log"} 

every 1.minutes do 
    runner 'TickerSymbol.update_prices' 
end 

На данный момент я ссылающийся Rails.logger.debug ... в методе TickerSymbol.update_prices. Также обратите внимание на файл schedule.rb, который я пытаюсь записать вывод из запланированного задания cron в /var/logs/*.log. Это не работает. Когда я просматриваю журналы на S3 или через консоль управления Beanstalk, я вижу другие файлы журналов из каталога/var/log, но я не вижу свои файлы журнала cron.

Мой .ebextensions/[приложение] название .config файл имеет следующее содержание:

sources: 
    /aws-scripts-mon: http://ec2-downloads.s3.amazonaws.com/cloudwatch-samples/CloudWatchMonitoringScripts.zip 

option_settings: 
    - option_name: AWS_SECRET_KEY 
    value: XXX 
    - option_name: AWS_ACCESS_KEY_ID 
    value: XXX 
    - option_name: BUNDLE_WITHOUT 
    value: "production:development" 
    - option_name: RACK_ENV 
    value: test 
    - option_name: RAILS_ENV 
    value: test 
    - option_name: RAILS_SKIP_MIGRATIONS 
    value: true 

container_commands: 
    01-setupcron: 
    command: echo "*/5 * * * * root perl /aws-scripts-mon/mon-put-instance-data.pl --mem-util --mem-used --mem-avail --aws-access-key-id $AWS_ACCESS_KEY_ID --aws-secret-key $AWS_SECRET_KEY > /dev/null" > /etc/cron.d/cwpump 
    02-changeperm: 
    command: chmod 644 /etc/cron.d/cwpump 
    03-changeperm: 
    command: chmod u+x /aws-scripts-mon/mon-put-instance-data.pl 
    04-rake_routes: 
    command: rake routes 
    05-whenever: 
    command: whenever -c 
    command: whenever -i [app name] --update-crontab 
    command: whenever -f 
    command: crontab -l 
    leader_only: true 

Далее следует содержание моего файла журнала, который генерируется во время моего развертывания с мерзавца aws.push. Эта запись в журнале подтверждает, что всякий раз, когда ожидается, генерирует файл crontab.

2013-04-06 14:50:37,469 [DEBUG] Running command 05-whenever 
2013-04-06 14:50:37,470 [DEBUG] Generating defaults for command 05-whenever 
<<< 

2013-04-06 14:50:37,639 [DEBUG] Running test for command 05-whenever 
2013-04-06 14:50:37,654 [DEBUG] Test command output: 
2013-04-06 14:50:37,654 [DEBUG] Test for command 05-whenever passed 
2013-04-06 14:50:37,671 [INFO] Command 05-whenever succeeded 
2013-04-06 14:50:37,671 [DEBUG] Command 05-whenever output: # Begin Whenever generated tasks for: [app name] 
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/app/ondeck && script/rails runner -e production '\''TickerSymbol.update_prices'\'' >> /path/to/my/cron_log.log 2>&1' 


# End Whenever generated tasks for: [app name] 

Я что-то пропустил? Основываясь на текущей конфигурации, я ожидаю увидеть мои сообщения журнала из TickerSymbol.update_prices в файле /var/log/cron_log.log. Однако я не вижу никаких указаний на то, что эти параметры вызывают ошибку, и я не вижу никаких указаний на то, что задание cron запущено.

ответ

0

Посмотрите на выходе в последнем журнале:

... cd /var/app/ondeck ... 

Этот каталог существует только во время развертывания. Если ваш crontab настроен на компакт-диск, как он говорит, это не сработает.