redirecionando “tail --follow = name | grep ”para um arquivo

1

Aqui está o meu cenário:

Eu tenho um arquivo de log que está sendo gravado também por um aplicativo. O arquivo de log é chamado "alarms.log". Eu quero seguir o arquivo para uma certa string e redirecionar isso para um arquivo chamado alarms.log.test. Então estou usando o comando abaixo.

tail --follow=name alarms.log | grep CEC >> alarms.log.test

Em seguida, corro o arquivo para o qual ele está sendo redirecionado usando este comando:

tail --follow=name alarms.log.test

Meu problema é o seguinte: O arquivo alarms.log.test não está recebendo nada no arquivo. Eu sei de fato que deveria ser. Porque a string está sendo encontrada. Eu acredito que o problema é que o redirecionamento aguarda uma certa quantidade de dados é lido e, em seguida, libera para o arquivo de redirecionamento, é esse o caso?

Preciso liberar o arquivo imediatamente toda vez que algo for encontrado. Existe uma maneira de fazer isso?

Obrigado

    
por prolink007 01.06.2011 / 19:02

1 resposta

3

Você pode usar o comando tee para isso?

The tee command is used to store and view (both at the same time) the output of any other command.

Talvez algo como o exemplo vinculado em SuperUser

tail -f alarms.log | egrep --line-buffered 'name' | tee alarms.log.test

Veja também: link

    
por 01.06.2011 / 19:07