次のPHPコマンドを実行するcronジョブがあります。
php /path/to/script.php > dev/null
STDERR出力のみMAILTOアドレスに送信する必要があります。私が知る限り、終了ステータスが1であっても、PHPスクリプトはSTDERR情報を出力しません。
phpコマンドの出力(STDOUT)を取得し、終了ステータスが0以外の場合にのみMAILTOに送信する方法は?
ベストアンサー1
php /path/to/script.php > logfile || cat logfile; rm logfile
標準出力をダンプし、logfile
スクリプトが失敗した場合にのみ出力します(ゼロ以外の終了)。
注:スクリプトが次に出力される可能性がある場合stderr
stderr
次に、にリダイレクトする必要がありますstdout
。それ以外の場合は、終了コードがゼロであっても、に印刷された内容がある場合、stderr
cronは電子メールを送信します。
php /path/to/script.php > logfile 2>&1 || cat logfile; rm logfile