`time` に似たコマンドをログに記録する

`time` に似たコマンドをログに記録する

コマンドtime(1)を使用すると、引数としてコマンドを渡すことで、任意のコマンドの時間を計測できますtime

stderrstdoutを 経由でファイルにリダイレクトできることは知っています2>&1。また、 をtee(1)使用すると、入力を画面とファイルの両方にコピーすることもできます。ただし、ログにタイムスタンプを追加する方法がわかりません。

ファイルにリダイレクトstderrし、ログ記録の目的でタイムスタンプを追加するツールはありますか?stdout

答え1

ts(1)moreutils から使用できます。


tsからもっと見る入力したすべての行の先頭にタイムスタンプを追加します。strftime を使用してフォーマットすることもできます。

$ echo 'foo bar baz' | ts
Mar 21 18:07:28 foo bar baz
$ echo 'blah blah blah' | ts '%F %T'
2012-03-21 18:07:30 blah blah blah
$ 

インストールするには:

sudo apt-get install moreutils

この回答からコピーされた内容:https://stackoverflow.com/a/9813614/221689

答え2

Debianannotate-output開発スクリプトパッケージ。タイムスタンプを表示し、標準出力の前に「O」、標準エラーの前に「E」を書き込みます。例:

# run `ls` on one file that exists, and one that doesn't...
annotate-output ls /bin/bash /tmp/boosh

出力:

03:30:52 I: Started ls /bin/bash /tmp/boosh
03:30:52 O: /bin/bash
03:30:52 E: ls: cannot access '/tmp/boosh': No such file or directory
03:30:52 I: Finished with exitcode 2

関連情報