メール stderr 出力、cron に stderr+stdout 記録

メール stderr 出力、cron に stderr+stdout 記録

stdout + stderrを正しい順序でファイルに書き込みながら、cronはstderr出力のみをメールで送信したいと思います。

Tシャツはなんだかこれで遊んだのですが、何か少し合いません...

コマンドをシェルスクリプトでラップします。

良い

#!/bin/bash
mycommand | maybe_some_shell_redirect_magic >> /var/log/mycommand.log

ベストアンサー1

私はこれが可能だと思います。行の順序を維持しながら(つまり、stderrはそれを作成するプロセス内でコピーされます)、POSIXシェルを使用しても同様です。努力する:

#!/bin/sh

exec 3>log
command args ... 2>&1 >&3 |while read err; do
  echo "$err" >&2
  echo "$err" >&3
done

おすすめ記事