记录任何类似于“时间”的命令

记录任何类似于“时间”的命令

time(1)命令允许您通过将任何命令作为参数传递给 来计时time

我知道可以通过 重定向stderrstdout到文件2>&1,并且还tee(1)允许将其输入复制到屏幕和文件。但是,我不知道如何向日志添加时间戳。

是否有一个工具可以重定向stderrstdout一个文件,并将时间戳附加到其中以供记录目的?

答案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

annotate-output从 Debian尝试开发脚本包裹。它显示时间戳,并在标准输出之前写入“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

相关内容