[ruby on rails] cronでRVMのRubyを使う

RVMで複数のRuby環境がある場合に、Railsアプリケーションのためのcronをどうするか? Rubyのパスはフルパス指定すればいいが、gemがRVMのgemを見に行かないのが問題。RVM環境でcronを実行する必要がある。

[1] crontabでrvmのrubyを使う - 橋本詳解

[2] RVM and cron in production

[3] rvm+railsなアプリケーションをcronで動かす - sanojimaru.com

[1]の方法にしてみた。
以下のような感じ。

cron用スクリプト /home/pistolfly/app_dir/cron/delete_sessions.sh
source /home/pistolfly/.rvm/scripts/rvm
rvm use 1.8.7 > /dev/null

cd /home/pistolfly/app_dir
ruby script/runner -e production "ActiveRecord::SessionStore::Session.delete_all(['sessions.updated_at < ?', 1.day.ago])"
cronの設定
$ crontab -e
*/10 * * * * sh /home/pistolfly/app_dir/cron/delete_sessions.sh

トラックバック(0)

このブログ記事を参照しているブログ一覧: cronでRVMのRubyを使う

このブログ記事に対するトラックバックURL: http://www.pistolfly.jp/mt/mt-tb-alt.cgi/1065

コメントする