Linux
記錄到文件,為每一行添加時間戳(Debian)
我正在嘗試將我的一些 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 一次。這是低效的,但在小規模下可能是可以接受的。