3

AWS CLI コマンド「aws ec2 create-snapshot」を実行する PHP スクリプトを起動する crontab があります。

コマンドライン経由でスクリプトを実行すると、PHP スクリプトが正常に完了し、aws コマンドが JSON 文字列を PHP に返します。しかし、php スクリプトを実行するように crontab をセットアップすると、aws コマンドは何も返しません。

crontab は、自分でコマンド ラインで PHP スクリプトを実行したときと同じユーザーとして実行されているので、少し困惑していますか?

4

2 に答える 2

1

aws コマンドへのフル パスを指定する必要がある理由は、デフォルトで cron が非常に限られた環境で実行されるためです。私もこの問題に遭遇し、これを cron スクリプトに追加してデバッグしました。

set | sort > /tmp/environment.txt

次に、cron およびコマンドライン (実行ごとに環境ファイルの名前を変更) を介してスクリプトを実行し、それらを比較しました。これにより、PATH と AWS_DEFAULT_REGION の両方の環境変数を設定する必要があることがわかりました。これを行った後、スクリプトは問題なく機能しました。

于 2015-02-16T22:36:45.663 に答える