Crontabで自動的に実行されるRakeスクリプトを作成しました。コマンドラインで入力したときにスクリプトはうまく動作しますが、cron内で正しく実行されません。My Shellスクリプトの起動cronで起動したときにRakeが正しく実行されない
スクリプトは次のようになります。
#!/bin/sh
echo `date`
cd /home/mick/myapp/current
rake RAILS_ENV=production mynamespace:myaction
crontabの設定は次のようになります。実行後
10 0,6,12,18 * * * /home/mick/work/launch.sh >> /home/mick/work/launch.log
、ログファイルは日付だけが、何もない、と私が手にエラーが含まれていますsyslogには次のように表示されます。
Mar 18 18:10:01 CRON[21773]: (mick) CMD (/home/mick/work/launch.sh >> /home/mick/work/launch.log)
Mar 18 18:10:01 CRON[21772]: (CRON) error (grandchild #21773 failed with exit status 127)
Mar 18 18:10:01 postfix/sendmail[21776]: fatal: open /etc/postfix/main.cf: No such file or directory
Mar 18 18:10:01 CRON[21772]: (mick) MAIL (mailed 1 byte of output; but got status 0x004b, #012)
EDIT:
@Holger Justのコメントのおかげで、私はthis linkが私に役立つスクリプトを手に入れました。ここで
は、典型的には非常に$PATH
を制限している私のスクリプト
#!/usr/bin/env bash # UPDATED TO GET ACCESS TO 'source'
export PATH=blabla # NOT SURE THIS HELPED AS IT WAS MY FIRST MODIF AND DIDN'T FIX
source /home/mick/.rvm/environments/default # LOADING RVM TO MAKE THINGS WORK
echo `date`
cd /home/mick/myapp/current
rake RAILS_ENV=production mynamespace:myaction
ここにスクリプトに追加された環境のすべてでも、同様の問題は修正されませんでしたが、単純な/過剰の "source〜/bash_profile"がそれを修正しました。ありがとう。 – David