Captura de logs de dispositivos entre horários específicos

3

Nós executamos um script de teste de um cron regularmente, antes de iniciar qualquer ação este script de teste limpa o / var / log / messages e depois de executar as ações ele analisa os dados em / var / log / messages. Isso não é um comportamento desejado, já que a limpeza de logs de dispositivos está envolvida no início do teste.

Como posso capturar logs de dispositivos apenas entre as execuções de teste? Então, esse teste pode analisar apenas esses dados?

    
por Poorna 02.01.2012 / 10:23

1 resposta

4

Talvez haja menos maneiras desleixadas, mas você pode executar

tail -0f /var/log/messages > captured_logs

enquanto seu script de teste é executado; ou use

logger -i "Test started"
# ...test script...
logger -i "Test stopped"

(consulte logger ) e grep para a seção posterior do registro completo. Cuidado, não tenho certeza do que acontece quando os logs são entregues, então uma solução mais robusta pode ser a leitura de syslogd so socket ( -p option), por exemplo com socat

socat UNIX-CLIENT:/var/run/log STDOUT

onde algo mais sofisticado do que o STDOUT pode atender melhor às suas necessidades. (Você pode até mesmo executar sua própria syslogd instance para a hora específica, configurada ( -a option) para capturar os logs desse soquete.)

    
por 02.01.2012 / 11:04