
該time(1)
命令允許您透過將任何命令作為參數傳遞給 來計時time
。
我知道可以透過 重定向stderr
和stdout
到文件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
答案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