Uma maneira fácil de fazer isso, se atender às suas necessidades, seria ter um arquivo de log específico que seja rotacionado todos os dias. Primeiro você adiciona a /etc/(r)syslog.conf
, provavelmente perto do topo, caso haja alguma regra que descarte algo depois de registrá-lo:
*.* -/var/log/daily.log
Isso receberá todas as mensagens ; ou seja, tudo o que estiver em qualquer outro log será neste.
Você só precisa de um script que possa ser executado via cron. Você poderia usar logrotate
para isso, mas não há muito sentido nesse caso.
#!/bin/sh
gzip /var/log/daily.log
# Do whatever with the gzipped file
touch /var/log/daily.log
kill -s HUP 'pidof syslogd' # see below
Esta última etapa é necessária para reiniciar o syslogd, portanto, ele reabre o novo /var/log/daily.log
- caso contrário, você não verá nada depois disso. Se você estiver usando o rsyslog, use pidof rsyslogd
. Teste tentando pidof
, o que acontecer primeiro.
Finalmente, em /etc/crontab
:
0 0 * * * root /path/to/rotationscript
Fará isso à meia-noite todos os dias.