stderr(ファイル名ではなくログファイル内)に日付を追加するにはどうすればよいですか?

stderr(ファイル名ではなくログファイル内)に日付を追加するにはどうすればよいですか?

アイテムがありますcrontab
00 10 * * * test.sh>>output_log 2>>error_log

しかし、私も毎日の開始行に日付を含めたいと思いますoutput_logerror_log

この目標をどのように達成できますか?

私は試した:

{ echo `date` && . test.sh; }>>output_log 2>>error_log

echo dateただし、日付は考慮されていないため、output_logにのみ含まれstderrます2

私は次の擬似コードが欲しい:

{ echo `date` && . test.sh }>>output_log { echo `date` plus 2's content } >>error_log  

ベストアンサー1

最も簡単:

0 10 * * * { date; date >&2; test.sh; } >> output_log 2>> error_log

ts各行の前にタイムスタンプを追加するMoreutilsのユーティリティを使用することも興味深いかもしれません。

SHELL=/bin/bash
0 10 * * * test.sh > >(ts >> output_log) 2> >(ts >> error_log)

/bin/bash(デフォルトのPOSIXはリダイレクト設定を/bin/shサポートしていないため、この使い方に注意してください。)>()

おすすめ記事