Como adiciono informações adicionais à saída redirecionada para um arquivo de log?

2

Atualmente, tenho algo assim:

./player_script |grep "videoname" >> log.log &

A saída de player_script mostra quando um vídeo começa e termina, grep , em seguida, pega apenas certos nomes de arquivos de vídeo e os coloca em log.log .

Então log.log será algo assim:

video <videoname> is playing now
video <videoname> ended
video <videoname> is playing now
video <videoname> ended

... e assim por diante.

O que preciso é o registro de data e hora de quando o arquivo é iniciado e termina em cada nova linha, neste formato:

Feb 28 15:35:32 video <videoname> is playing now

Eu também preciso da data no arquivo de log: log2012-02-29.log .

Isso está sendo executado no Solaris 5.8 & 5,9.

    
por reyes 29.02.2012 / 01:40

2 respostas

3

Para responder sua segunda parte, é bem fácil. Em vez de log.log, use o seguinte:

log'date '+%Y-%m-%d''.log

Preste especial atenção que existem 'backticks' que envolvem o comando date. Isso diz ao shell para executá-lo primeiro e colocar os resultados em sua linha de comando para torná-lo parte de seu nome de arquivo.

    
por 29.02.2012 / 02:51
0

Para a primeira parte (um tiro no escuro, pois só tenho acesso ao Solaris 11), uma solução de script sh :

./player_script | grep "videoname" | while read line;
     do echo 'date '+%Y-%m-%d:%H:%M:%s'' $line;
     done >> log'date '+%Y-%m-%d''.log

Observe que é mais fácil classificar várias linhas de registro por data se você usar um formato como +%Y-%m-%d...

Você também precisa ter cuidado para que player_script ou grep não armazenem dados no buffer se você quiser registros de data e hora precisos em suas entradas de log.

    
por 19.01.2018 / 00:13