Inodes e 'No space left on device'
Um inode é a estrutura de dados que um sistema de arquivos estilo Unix usa para armazenar informações sobre um arquivo, como seu proprietário, permissões, tamanho e onde seus dados residem. Cada arquivo usa um inode, e muitos sistemas de arquivos possuem um número fixo, portanto, milhões de arquivos minúsculos podem causar 'No space left on device' enquanto o df -h ainda mostra espaço livre.
1Como visualizar
df -i lista o total de inodes, bem como a quantidade de inodes usados e livres por sistema de arquivos. ls -i mostra o número do inode de um arquivo, e stat <file> mostra os detalhes do seu inode.
2Causas típicas
Diretórios de sessão ou cache de aplicações web, filas de e-mail, arquivos de log pequenos não rotacionados e caches de compilação podem criar milhões de arquivos.
3Encontrando o diretório
O GNU du pode contar inodes: du --inodes -x / | sort -n | tail lista os diretórios com o maior número de entradas.
Como corrigir o esgotamento de inodes
- Confirme:
df -i(IUse% próximo de 100%). - Encontre o diretório:
sudo du --inodes -x --max-depth=3 / | sort -n | tail -20 - Verifique o que cria os arquivos antes de excluir qualquer coisa.
- Remova arquivos antigos dessa aplicação com sua própria ferramenta, ou com find, por exemplo:
find /path -type f -mtime +7 -deleteapós uma execução de teste sem o -delete.
Cuidados
- Sempre execute o find sem -delete primeiro e leia a lista.
- A contagem de inodes do ext4 é fixada quando o sistema de arquivos é criado.
Artigos relacionados
- df (disk free)Como ler a saída do df, por que o Use% pode atingir 100% antes que o Avail seja zero para usuários comuns e como verificar inodes com df -i.
- Localizando arquivos grandes e antigos com o findComo usar o find para listar arquivos grandes ou antigos no Linux, visualizá-los com segurança e excluir apenas o que você verificou.
- Uso de disco com du e ncduComo encontrar o que está ocupando o disco no Linux com o du e o interativo ncdu, usando opções que permanecem em um único sistema de arquivos.
Fontes
Última revisão: