Pouco espaço em disco truncado

2

Quando você tem uma situação de disco baixo com um arquivo de log ocupando algum GB e não há mais espaço em disco, qual é o melhor curso de ação sem perder nenhum registro?

As coisas que tentei foram mover o arquivo de log e compactar, mas isso será mostrado como excluído em lsof, o que pode ser um problema no futuro.

Possivelmente gzip o arquivo de log e mate -1 o processo. Mas isso é algo que você faz um servidor de produção para serviços como httpd e mysql?

Obrigado.
Ob

    
por Olive.b 19.12.2017 / 13:11

2 respostas

1

Se o armazenamento estiver 100% cheio, a compactação não funcionará, pois não há espaço para um arquivo temporário.

Copie os registros para outro armazenamento. scp -r /var/log/ otherhost:

Revise e exclua arquivos de log antigos. find /var/log -mtime +7

Expanda o sistema de arquivos, se necessário.

Comprima alguns arquivos grandes. Recarregue os serviços para abrir um novo arquivo de log. gzip /var/log/httpd/access_log ; systemctl reload httpd.service

Implemente logrotate ou script equivalente para gerenciá-los automaticamente. O padrão usual é mover o arquivo atual para um novo nome e reabrir um novo arquivo de log.

Considere a implementação de um servidor de log remoto e o envio de logs do host em vez disso.

O envio de um sinal a um serviço ou a sua reposição é aceitável depende de você. Claro, você pode tentar em um sistema de teste se isso te deixa nervoso.

Se você não disser ao serviço para abrir um novo arquivo, há outra opção: truncar no lugar. cp /dev/null file.log ou opção logrotate copytruncate . No entanto, tome cuidado com o aviso sobre isso não ser atômico na página de manual da taxa de registro:

Note that there is a very small time slice between copying the file and truncating it, so some logging data might be lost.

    
por 22.12.2017 / 06:21
1

para o uso do apache no sinal USR1:

killall -USR1 httpd

e para o comando mysql flush logs:

mysqladmin flush-logs

mas provavelmente você seria melhor usando logrotate para rodar logs e normalmente ele vem com configs para apache / mysql, que basicamente faz isso para você e para os logs gzips. É uma prática comum em servidores de produção.

    
por 19.12.2017 / 13:21