環境はさくらVPS上のUbuntu Serverです。
セットアップのログはここ
セットアップついでにrbenvに乗り換えたのだけれど
cronでrubyのスクリプトを動かそうとしてハマりました。
とりあえず動けばいいや
ってことでcronじゃなくて、無限ループさせてた
while :; do ./homu.rb; sleep 3600; done
けれどターミナルがひとつつぶれるしアレなので解決策を探してみた。
cronで処理する方法
以下参考にしたサイト
- stackoverflow/ruby script using rbenv in cron
- Maeの(Mae向きな)日記/cronでrbenvを使ってrubyスクリプトを実行する方法
- uu59のメモ/livedoorクリップをGmailに持っていって検索を便利にする
まず、$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道場は行けるかなー