読者です 読者をやめる 読者になる 読者になる

いろいろ雑記

rbenvのrubyスクリプトをcronで処理する方法

環境はさくらVPS上のUbuntu Serverです。
セットアップのログはここ

セットアップついでにrbenvに乗り換えたのだけれど
cronでrubyのスクリプトを動かそうとしてハマりました。

とりあえず動けばいいや

ってことでcronじゃなくて、無限ループさせてた

while :; do ./homu.rb; sleep 3600; done

けれどターミナルがひとつつぶれるしアレなので解決策を探してみた。

cronで処理する方法

以下参考にしたサイト

まず、$HOME/.bash_profileにrbenvの設定を追加

if [ -s ${HOME}/.rbenv ]; then 
        export PATH="$HOME/.rbenv/bin:$PATH"
        eval "$(rbenv init -)"
        source ~/.rbenv/completions/rbenv.bash
fi

んでcronに登録

1 * * * * bash -lc '/home/hoge/workspace/huga/script/homu.rb >>/home/hoge/log/homu.log 2>>/home/hoge/log/homu.log'

bashの-lオプション重要

  • lで.bash_profileを読み込む

スクリプトのshebangはこんな感じ

#! /usr/bin/env ruby    

参考サイトの合わせ技でスマートに書けたー、わーい

たわごと

誰がハタ坊か(w
Git道場は行けるかなー