cronでrbenvのrubyを実行する


cronのバッチ経由でrubyスクリプトを実行しようとしたところ、rbenvでインストールしたrubyだったためうまくバッチが実行できない現象に遭遇しました。

その時の対応方法メモ。

  • ~/.bashrc にrbenvの設定を行う
# ~/.bashrc

export RBENV_ROOT=/usr/local/rbenv
export PATH="$RBENV_ROOT/bin:$PATH"
eval "$(rbenv init -)"
  • cron設定を変更
crontab -e

0, 12, * * * /bin/bash -lc '/home/user/sample/cron.sh' # 毎日12時にrbenvのrubyを用いてcron実行

bashのlオプションを渡すと、ログインシェルと同じ環境変数が設定されるそうです。

参考