Programa que aceita stdin e grava em um arquivo datetime estampado?

3

Eu me pergunto se existe um programa que faça o que eu quero. Isso é como um programa de rotação de logs de fluxo contínuo. Para a linha de comando linux / unix.

Digamos que eu tenha alguma entrada que esteja transmitindo alguns dados. Eu quero escrever um arquivo, mas um arquivo diferente por dia (ou hora ou qualquer outra coisa), ou seja, abrir um arquivo com um padrão baseado em data e hora especificado e gravar o conteúdo de stdin para esse arquivo. quando o dia mudar (ou a hora ou o minuto, ou a semana etc), feche esse arquivo, abra novamente um novo (que terá um novo nome de arquivo) e escreva linhas para esse arquivo?

Então, algo como:

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

Esta ferramenta existe?

    
por Rory 02.11.2011 / 23:54

2 respostas

5

Você pode usar o cronolog .

cronolog is a simple filter program that reads log file entries from standard input and writes each entry to the output file specified by a filename template and the current date and time. When the expanded filename changes, the current file is closed and a new one opened.

    
por 03.11.2011 / 01:15
2

Que tal logger ? Registra no syslog, que é "datestampped" e pode ser logrotate d.

E com a opção -f , registra em um arquivo. Veja man logger .

    
por 03.11.2011 / 00:02