接受stdin的程序,然后写入date时间标记的文件?

我不知道有一个程序会做我想要的。 这就像一个stream式的日志旋转程序。 对于linux / unix命令行。

比方说,我有一些inputstream是一些数据。 我想写一个文件,但每天(或小时或其他),不同的文件,即打开一个指定的基于date时间的模式的文件,并写入该文件的标准input的内容。 当一天发生变化(或者小时或分钟,或者星期等)时,closures那个文件,然后重新打开一个新的文件名(将会有一个新的文件名),然后写入这个文件的行呢?

所以像这样:

my long | process | that's generating | input | datestampfilewriter --daily 'output.%Y-%m-%d.txt' 

这个工具是否存在?

你可以使用cronolog 。

cronolog是一个简单的filter程序,它从标准input读取日志文件条目,并将每个条目写入由文件名模板指定的输出文件以及当前date和时间。 当扩展文件名改变时,当前文件被closures,并打开一个新文件。

logger如何? logging到syslog,这是“datestampped”,可以是logrotate d。

并用-f选项logging到文件。 man logger