wheneverとはcrontabを管理するためのgemです。
インストール方法についてはwheneverのリポジトリを参照ください。
silentオプションを外すと何がうれしいの?
cronの実行ログを書き込みたい場合に捗ります。
rakeの--silent
オプションが設定されていると標準出力にログメッセージ及びディレクトリが表示されなくなるため、ログに書き込まれない(未検証だが標準出力エラーは書き込まれるかも)
本題
rake用のjob_typeから--silent
オプションを省いて再定義することによって解決しました。
実はこちらもwheneverリポジトリのREADMEにjob_typeのデフォルト定義と変更方法が書いてありました。
job_type :rake, "cd :path && :environment_variable=:environment bundle exec rake :task --silent :output"
設定
schedule.rbへrake用job_typeを--silent
オプションを外して再定義すれば完了です。
schedule.rb
set :output, '/var/log/cron.log'
# rake用job_typeの再定義
job_type :rake, 'cd :path && :environment_variable=:environment bundle exec rake :task :output'
every '0 7 * * *', roles: [:batch] do
rake 'item:update'
end
設定内容の確認
0 7 * * * /bin/bash -l -c 'cd /hoge/fuga && RAILS_ENV=development bundle exec rake item:update >> /var/log/cron.log 2>&1'
まとめ
job_typeの定義を変更することで--silent
オプションの解除に限らず色々工夫が出来そうです。