Logrotate: como acessar o arquivo de saída em postrotate

14

Giro Nginx logs diariamente (com dateext ). Após a rotação, quero analisar o arquivo do dia que acabou de passar e compilar um email com o número de erros retornados pelo servidor Nginx.

Como posso acessar o arquivo de saída na seção postrotate / endscript de logrotate ?

    
por ibz 01.11.2010 / 11:56

2 respostas

4

Não tenho conhecimento de nenhuma variável que você possa usar, se é isso que você está procurando. No entanto, imediatamente após a rotação do log, você deve saber com precisão o nome para o qual o arquivo foi rotacionado, com base na configuração que você definiu para a rotação ( /var/log/somefile.1 ou similar).

Talvez seja mais fácil responder se você descreveu o problema real que está tentando resolver?

    
por 01.11.2010 / 12:08
17

Se você não estiver usando a diretiva "sharedscripts", seu script postrotate receberá, como $ 1, o arquivo que acionou a rotação do log. Isso pode ajudar se você estiver tentando usar um script genérico com várias estrofes logrotate. Isto é, dado algo como isto:

/var/log/sample1.log /var/log/sample[23].log {
  ..config...
}

Se algum arquivo correspondente precisar ser girado, seu script será chamado com $ 1 definido como "/var/log/sample1.log", "/var/log/sample2.log" ou "/ var / log / sample3.log "conforme apropriado. Você pode então acrescentar ".1" para encontrar o arquivo que acabou de ser girado.

Se você usar a opção "sharedscripts", seu script será chamado com $ 1 definido como "/var/log/sample1.log /var/log/sample[23].log" (que ajudará a identificar um estrofe particular, mas não o arquivo exato).

Espero que isso lhe dê um lugar para começar. Note que isso só funcionará para logrotate > v3.7.5.

    
por 01.11.2010 / 14:26

Tags