rbenvでcron
しょっちゅう忘れるのでメモ。rbenvの環境でRubyをcronから実行すると、細かい実行環境の違いで失敗する。なので、こんな工夫が必要になる。
42 4 * * * /bin/bash -c 'export LANG=ja_JP.UTF-8;export PATH="$HOME/.rbenv/bin:$PATH";\ eval "$(rbenv init -)";ここから実際にやりたいことを書く'
* 実際には一行で。
まず-cでbashを続く文字列から読み込んで実行するモードにする。LANGの設定をここかcrontabの先頭で指定しておかないとRubyのスクリプトの先頭に「# -*- coding: UTF-8 -*-」と書いていても非ASCII文字がどうたらというエラーになる。PATHも同じで、インラインで書くなら上みたいな感じにする。あとはおまじないだと思いましょう。
コメントを残す