LoginSignup
9
2

More than 5 years have passed since last update.

wheneverを使ってcrontabにrakeタスクを設定する時に--silentオプションを外す方法

Last updated at Posted at 2017-11-23

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オプションの解除に限らず色々工夫が出来そうです。

9
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2