我想知道是否有一个程序可以做我想做的事。这就像一个流式日志轮换程序。适用于 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
。