コード日進月歩

しんくうの技術的な小話、メモ、つれづれ、など

crontabは従来のログインシェルと違ってPATHが通ってないことがあるので気をつける

結構環境によって対処法が変わるので雑な感じのメモ

遭遇した状況

  • ログインしているshでは上手く行くのに、cronで実行すると失敗する
  • 実行していたのは bin/rails から始まる rake タスク

原因

gemや実行したいコマンドの実行パスが通っていないのが原因

解決策

パスを通してあげる。お手元のshでできている場合はその起動profileで実行パスを通せているということなので、能動的にそれらを実行してあげれば大体できるようになる。たとえば、実行するシェルファイルに下記の記述を書き足すだけで動くようにになったりする。

. /etc/profile

参考リンク