2012-03-29 13 views
1

これはcronジョブであり、STDERRへの出力はエラーの電子メール通知になります。しかし、エラーは致命的ではない可能性があるので、STDOUTでログにSTDERR出力が含まれている必要があります。どうやって?bashがログにSTDOUT + STDERR、通常の宛先にSTDERRが必要

+2

これは、月あたり1〜2×を尋ねます。助けるものは何も見つかりませんでしたか?がんばろう。 – shellter

答えて

1

私は、標準のシェルコマンドラインでこれを行う方法を試してみました。

ばかげたコマンドラインを用意してください。

((./your-script 3>&1 1>&2 2>&3 3>&- | tee /dev/fd/2) 3>&1 1>&2 2>&3 3>&-) | 
    cat >logfile 

私はその醜態について言うことができる唯一のことは、それが動作することである...と私も動作しますシンプルな何かを見つけることができません。ああ、それはbashか何かを必要としません。標準のbourneシェルで動作します。

最後に近いところに| catがなければならないという手がかりはありませんが、それがなければ動作しません。少ない文字で

+0

最後に 'cat'を追加すると、バッファリングモードが変更されるため、出力が早く(おそらく)表示されますが、最後はすべて同じになると思います。 – ams

0

次のコマンド作品:

((./your-script 3>&1 1>&2 2>&3- | tee /dev/fd/2) 3>&1 1>&2 2>&3-) | cat > logfile 
関連する問題