Marcio Cunha

Disco cheio de logs antigos? Como achar arquivos ocultos e inodes

Aprenda a auditar o espaço em disco ocupado por logs antigos combinando scripts em shell e utilitários avançados de varredura para liberar inodes esgotados.

Marcio Cunha•3 min
Também disponível em:EnglishEspañol
Resumo
  • O esgotamento de inodes ocorre quando o sistema de arquivos fica sem identificadores de arquivos, mesmo com espaço livre aparente.
  • Comandos tradicionais como o du podem falhar ao mapear arquivos abertos por processos travados que continuam consumindo disco.
  • A varredura com utilitários de linha de comando permite isolar diretórios volumosos de forma eficiente e sem impacto na produção.
  • Scripts em shell automatizam a varredura periódica e o expurgo seguro de logs antigos sem riscos operacionais.
  • O monitoramento contínuo de inodes previne quedas repentinas de serviços críticos causadas por falta de ponteiras livres.

Por que o disco diz estar cheio mas tem espaço livre?

Quem nunca passou pela frustração de receber um alerta de disco cheio, apagar gigabytes de arquivos e descobrir que o sistema continua travado ou reclamando de falta de espaço? Na maioria das vezes, o culpado não é o volume de dados em si, mas sim o esgotamento dos chamados inodes. Na prática, um inode é como a ficha cadastral de um arquivo no sistema operacional: ele guarda informações vitais como permissões, dono e localização física dos dados, mas não o conteúdo em si. Quando criamos milhões de pequenos arquivos de log, podemos esgotar todas as fichas cadastrais disponíveis na partição antes mesmo de o espaço físico em bytes acabar. Para evitar surpresas em ambientes de produção, é essencial entender também como otimizar a infraestrutura, a exemplo de quando o monitoramento de métricas sai do ar e exige recuperação rápida de serviços.

Como auditar o consumo real usando ferramentas de linha de comando

Quando o problema é o espaço físico consumido por pilhas de logs antigos, o comando padrão costuma ser o du, utilitário que estima o uso de espaço de arquivos e diretórios. No entanto, o du pode enganar quando lidamos com arquivos que foram apagados pelo sistema operacional, mas continuam abertos e em execução por algum processo travado. Na prática, isso significa que o espaço em disco continua ocupado porque o sistema operacional mantém o ponteiro do arquivo ativo na memória. Para inspecionar esses arquivos fantasmas e evitar que eles estourem o armazenamento, muitos engenheiros utilizam técnicas de transmissão de dados via rede, como manipular arquivos compactados pesados via SSH sem lotar o disco local. A combinação de varreduras precisas com a identificação de processos zumbis garante que nenhuma área oculta escape da auditoria.

Desenvolvendo um script em shell para varredura e limpeza segura

Para automatizar a caça aos logs antigos e inodes perdidos, podemos escrever um script em shell robusto e seguro. O script abaixo percorre diretórios específicos, identifica arquivos com mais de trinta dias de existência e exibe o uso detalhado antes de qualquer remoção. Na prática, a automação evita erros humanos causados pelo cansaço em operações manuais de madrugada. Veja como estruturar o procedimento de busca e limpeza em sua máquina:

#!/bin/bash
# Diretorio alvo para auditoria de logs
TARGET_DIR="/var/log/old_apps"

echo "Iniciando varredura de arquivos com mais de 30 dias em $TARGET_DIR..."
find "$TARGET_DIR" -type f -mtime +30 -exec ls -lh {} \; | awk '{print $5, $9}'

echo "Verificando inodes restantes na particao..."
df -i "$TARGET_DIR"

Executar esse tipo de rotina com frequência ajuda a manter a saúde do servidor em dia, garantindo que o sistema operacional responda com agilidade mesmo sob forte carga de escrita de logs. Além disso, manter os servidores operando em temperaturas adequadas, cuidando para que o rack não sofra com superaquecimento e fluxo de ar deficiente, complementa a estabilidade física da infraestrutura.

Boas práticas para evitar o esgotamento futuro de inodes e espaço

Auditar logs antigos é um excelente remédio, mas criar políticas preventivas é a verdadeira chave para a paz na administração de sistemas. A melhor estratégia consiste em implementar a rotação automática de logs por meio de ferramentas nativas como o logrotate, que compacta e descarta arquivos antigos de forma programada. Na prática, isso impede que um único aplicativo crie milhões de microarquivos sem controle ao longo dos meses. Combinar scripts de auditoria periódica com alertas automáticos de inodes esgotados transforma uma operação reativa e estressante em um processo previsível, seguro e totalmente sob controle.