Um arquivo de log de 37GB é um problema em si, especialmente se o sistema tiver apenas alguns dias. Você tem que monitorar o arquivo de log para ver o que está acontecendo. O melhor é excluir o arquivo antigo, pois ele é grande demais para ser manipulado. Então você pode instalar logrotate . Com ele você pode limpar arquivos de log. Ele pode "girar" arquivos de log diariamente, semanalmente ou o que você quiser. No seu caso, deveria ser diário. Em seguida, você especifica quantos arquivos de registro deseja manter, além de precisar compactar os antigos.
Esse arquivo de 37 GB é compactado com apenas 4 GB, portanto, não causará problemas, mesmo se você precisar manter cinco deles. Isso ainda seria extremo, mas isso é apenas para dar uma ideia do que a logrotation pode fazer.
Abaixo, você pode ver minha configuração do logrotate para o Apache, com compactação e compactação atrasada. Mantém os logs por 14 dias. Para o seu log você deve procurar no google o que é uma boa configuração.
/var/log/apache2/*.log {
daily
missingok
rotate 14
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
if /etc/init.d/apache2 status > /dev/null ; then \
/etc/init.d/apache2 reload > /dev/null; \
fi;
endscript
prerotate
if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
run-parts /etc/logrotate.d/httpd-prerotate; \
fi; \
endscript
}
Quando tudo estiver funcionando bem, você pode definir o logrotation de volta para 30 dias ou algo assim.
Ah, e se este não for o sistema que você usa diariamente, execute o trabalho logrotate manualmente. Se o cronjob estiver configurado para ser executado às 3 da manhã, provavelmente ele não será executado e o problema continuará existindo.
Atualizar
Você precisa adicionar compress
à sua configuração do logrotate. Você pode adicionar isso a todas as configurações em /etc/logrotate.d
. Para logs grandes demais agora, exclua-os ou compacte-os como você fez. 800MB ainda é muito, considerando que você nunca fará nada com ele, então apague-o: sudo rm syslog.1.gz
, e apague tudo que é muito grande.