接受标准输入,然后写入带有日期时间戳的文件的程序?

接受标准输入,然后写入带有日期时间戳的文件的程序?

我想知道是否有一个程序可以做我想做的事。这就像一个流式日志轮换程序。适用于 linux/unix 命令行。

假设我有一些输入正在流式传输一些数据。我想将其写入一个文件,但每天(或每小时或其他时间)写入一个不同的文件,即打开一个具有指定日期时间模式的文件,并将 stdin 的内容写入该文件。当日期(或小时、分钟、星期等)发生变化时,关闭该文件,然后重新打开一个新文件(将具有新文件名),然后将行写入该文件?

因此类似于:

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

这个工具存在吗?

答案1

你可以使用纪年法

cronolog 是一个简单的过滤程序,它从标准输入读取日志文件条目,并将每个条目写入由文件名模板和当前日期和时间指定的输出文件。当扩展文件名发生变化时,当前文件将关闭并打开一个新文件。

答案2

怎么样logger?记录到 syslog,带有“日期戳”,可以logrotate删除。

并使用-f选项记录到文件。请参阅man logger

相关内容