病みつきエンジニアブログ

機械学習、Python、Scala、JavaScript、などなど

rbenv を使っている環境で crontab が上手く動いてくれないときは

crontab は、事前に設定されたShellで、設定されたPathを通した上で、実行されます。
つまり、現在使っているShellや、SSHで接続しているShell、もしくは.bash_profileに書かれているようなPathは、全無視されます。

上手くいかないときは/etc/crontab を編集した上で、然るべきPathを通してあげると上手く行くかもしれないです。

で、自分の事例だと、rbenvなどを使っていて、Pathは.bash_profileに書かれていたので、

/bin/sh: ruby: command not found

とか言われてました。

rbenv の場合はPath などを変更してもどうしようもなさそうだったので、
crontab のリストから実行するファイル自体を変更し

~/.rbenv/versions/[バージョン]/bin/ruby [ファイル名].rb

って感じでかいてみましたとさ。