Linux

記錄到文件,為每一行添加時間戳(Debian)

  • February 8, 2012

我正在嘗試將我的一些 shell 腳本的輸出記錄到一個文件中,並且我希望將時間戳附加到每一行。據我了解,這就是logger(1)目的,但我不希望輸出轉到 /var/log/messages,而且我看不到使用 logger 可以做到這一點。順便說一句,我正在使用 Debian。

做這個的最好方式是什麼?

——奧利弗

logger的作用其實就是將消息分流到syslog;預設配置將添加時間戳並將日誌寫入 /var/log/messages,但這並不意味著記錄器的目的是添加時間戳。

處理此問題的一種方法是修改您的系統日誌配置,以便您通過記錄器路由的消息轉到一個特殊文件 - 使用“-p”標誌記錄器來規定設施.優先級對(可能是使用者之一

$$ 1..7 $$設施),並配置您的 syslogd 以將該設施記錄到特殊文件中。 或者,您可以啟動一個快速的 shell 函式來簡單地添加時間戳:

Bodacious:~ james$ timestamp () {
> f=`date`
> echo $f $*
> }
You have new mail in /var/mail/james
Bodacious:~ james$ timestamp a line of logs
Tue 18 Jan 2011 22:40:24 EST a line of logs
Bodacious:~ james$ 

在我的系統上,這將導致 shell 在每行輸出中分叉 /bin/date 一次。這是低效的,但在小規模下可能是可以接受的。

引用自:https://serverfault.com/questions/223725