rvmでのrakeコマンドをcrontabで呼び出す


rvmの下のrakeコマンドをcrontabで呼び出す必要があり、長い間振り回されてやっと解決した.
環境はUbuntu 10.04
crontabの問題の90%はpathに関連しており,正しいrubyが見つからず,正しいgemsが見つからない.それを理解すると簡単になります.正しく設定されている限り:PATH,GEM_HOME, GEM_PATHは命令ラインの下で運営されているのと同じです.
1.通常のコマンドラインで呼び出したいスクリプトまたはプログラムを実行できることを確認します.
2.前のステップの成功に基づいて、PATH,GEM_を確認するHOMEとGEM_PATH
  

      $ echo $PATH
      $ echo $GEM_HOME
      $ echo $GEM_PATH
   

3.上の変数をスクリプトに設定します.例えばset_cron_path.sh、次は私たちの列です.

export PATH=/home/someboy/.rvm/gems/ruby-1.9.3-p125@zyt/bin:/home/someboy/.rvm/gems/ruby-1.9.3-p125@global/bin:/home/someboy/.rvm/rubies/ruby-1.9.3-p125/bin:/home/someboy/.rvm/bin:/usr/local/ruby/bin:/usr/local/ImageMagick/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
export GEM_HOME=/home/someboy/.rvm/gems/ruby-1.9.3-p125@zyt
export GEM_PATH=/home/someboy/.rvm/gems/ruby-1.9.3-p125@zyt:/home/someboy/.rvm/gems/ruby-1.9.3-p125@global

4.crontabでこのスクリプトを呼び出します.たとえば、次のようにします.

03 * * * * . /home/someboy/set_cron193_path.sh; /bin/bash -l -c 'cd /home/someboy/apps/zyt && RAILS_ENV=production rake platform_comment:get_comments --trace >>/home/someboy/apps/zyt/log/platform_comment.log 2>&1' 

これでいいはずです.他にもよくある問題があります.例えば、ファイルに権限がないなどです.
上記の例では、対応するログに日付を入力し、運営状況を表示できます.
crontab自身のlogを/var/log/sysyslogに書く