1

私は、多段階サポートを備えたカピストラーノを使用して、アプリケーションを本番サーバーにデプロイする PHP 開発者です。そのため、Ruby や Rails の知識はほとんどありません。

私は、'flush' という新しい関数を deploy.rb スクリプトに追加して、すべての運用サーバーで php スクリプトを呼び出すのに十分なことを理解しました。「フラッシュ」の目的は、各本番サーバーに接続し、各サーバーのローカル mysql テーブルからマスター データベースにすべてのログを書き込む php スクリプトを実行することです。

コマンド ライン (cap prod flush) から実行すると正確な結果が得られるため、関数が機能していると確信しています。

この関数を 1 時間ごとに呼び出す cron ジョブをスケジュールしたいと考えています。まず、関数を実行する bash スクリプトを作成しました。

!#/bin/bash
`/usr/bin/cap prod flush`

ただし、cron ジョブがスクリプトを実行すると、次のエラーがメールで返されます。

タスク「prod」は存在しません

問題は、cronが実行されたときであり、適切なディレクトリでスクリプトを実行していないことにあると思います。bash スクリプトで $PATH および $HOME 変数を変更しようとしましたが、うまく動作しないようです。

誰か助けてくれませんか?

ありがとう!

4

1 に答える 1

2

への変更

cd /path/where/deploy.rb/exists
cap prod flush

また

cd /your/app/path/    
cap prod flush
于 2009-05-05T18:33:01.230 に答える