私のコンピュータで実行すると、多くの出力を生成するスクリプトを実行しています。コンテンツに興味がないので、その出力をにリダイレクトし、/dev/null
ファイルからエラーをキャッチします(スクリプトが失敗した場合にのみ興味があるため)。ただし、ファイルのエラーにはタイムスタンプは含まれていません。
stderrリダイレクトにタイムスタンプを追加する方法はありますか?これは私のコマンドですが、タイムスタンプを追加する方法がわかりません。
myScript.sh 2>> logfile.txt 1>/dev/null
日付を印刷するためにmyScript.shを変更することはできないので、それもオプションではありません。私は次のことを試しました:
myScript.sh 2>> logfile.txt << date
しかし、これはうまくいきません。
ベストアンサー1
ts
fromは、moreutils
いくつかの出力の各行にタイムスタンプを追加するために使用できます。
myScript.sh 2>&1 > /dev/null | ts >> logfile.txt
同様の形式でタイムスタンプ形式を指定できますstrftime()
。
$ seq 4 | ts '%FT%.T%z:'
2023-06-06T14:11:15.244613+0100: 1
2023-06-06T14:11:15.244693+0100: 2
2023-06-06T14:11:15.244729+0100: 3
2023-06-06T14:11:15.244759+0100: 4
たとえば、マイクロ秒精度のISO8601タイムスタンプ形式です。