Ruby
cron

cronでrubyを定期的に実行する(備忘録)

More than 3 years have passed since last update.


全体の流れ



  1. crontab -e で開かれるファイルに実行間隔と実行したいコマンドを書く


  2. 実行される

  3. やったぜ。


crontabの書き方

こちらのサイトが例が多くて分かりやすいです

crontabの書き方


自分は最終的に0 * * * * /bin/bash -cl 'cd (xx.rbのあるディレクトリ) && ruby -Ku xx.rb'のようなものを書きました


詰まった点


crontabを書いて保存しても更新されない

viで開くと保存されないみたい…?

'EDITOR=nano crontab -e' などで他のエディタを指定しましょう


cron書いたのに定期実行してない

/var/mail ディレクトリにログが出ているので確認しましょう


自分で'ruby xx.rb'とすると動くのにcronから実行するとエラーが出る

requireが無いとかのエラー

 → rbenvのglobalを見るとsystemになっていたので、普段使ってる2.0.0-p247に変更したらエラーが消えました


US_ASCIIが云々のエラー

 → rubyの実行オプションに-Kuを追加したら消えました


参考

橋本商会 crontabでrbenvのrubyを使う

cronでrbenvのrubyを使う3つの方法

Ruby-cronで「invalid byte sequence in US-ASCII」例外発生!