我正在尝试将我的一些
shell脚本的输出记录到文件中,并且我希望时间戳前置于每一行.根据我的理解,这就是logger(1)的用途,但我不希望输出转到/ var / log / messages,我看不出这可以使用logger.我顺便使用Debian.
做这个的最好方式是什么?
-Oliver
解决方法
记录器的功能实际上是将消息分流到syslog;默认配置将预先设置时间戳并将日志写入/ var / log / messages,但这并不意味着记录器的目的是预先设置时间戳.
处理此问题的一种方法是修改系统日志配置,使您通过记录器路由的消息转到特殊文件 – 使用“-p”标志记录器以规定facility.priority对(可能是用户之一[1. .7]设施),并配置您的syslogd以将该设施记录到特殊文件.
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 forking / bin / date.这是低效的,但在小规模上可能是可接受的.