Como você pode ver em df -h
, você ainda tem espaço na sua partição raiz. No entanto, df -i
mostra que você ficou sem inodes. No meu computador, eu tenho 7.3G usado na minha partição raiz, mas apenas 320.000 inodes usados, então você provavelmente tem um monte de arquivos muito pequenos entupindo as coisas em algum lugar.
Para uma discussão de onde, ver, por ex. Stack Exchange - Encontre onde os inodes estão sendo usados . Eu tentaria o seguinte da página:
sudo find / -xdev -printf '%hsudo du / --inodes -xS | sort -rh | head -n 50
' | sort -z | uniq -cz | sort -nrzk 1 | tr '3297 /usr/share/app-install/desktop
3022 /usr/share/man/man3
2325 /usr/bin
2149 /usr/share/man/man1
2104 /usr/share/app-install/icons
1816 /usr/lib/x86_64-linux-gnu
1089 /usr/src/linux-headers-4.2.0-19/include/linux
1089 /usr/src/linux-headers-4.2.0-18/include/linux
1089 /usr/src/linux-headers-4.2.0-16/include/linux
...
' '\n' | head -n 50
Se você estiver em uma versão mais recente do Ubuntu (por exemplo, 15.10), esse comando mais curto também poderá ser mais rápido:
sudo find / -xdev -printf '%hsudo du / --inodes -xS | sort -rh | head -n 50
' | sort -z | uniq -cz | sort -nrzk 1 | tr '3297 /usr/share/app-install/desktop
3022 /usr/share/man/man3
2325 /usr/bin
2149 /usr/share/man/man1
2104 /usr/share/app-install/icons
1816 /usr/lib/x86_64-linux-gnu
1089 /usr/src/linux-headers-4.2.0-19/include/linux
1089 /usr/src/linux-headers-4.2.0-18/include/linux
1089 /usr/src/linux-headers-4.2.0-16/include/linux
...
' '\n' | head -n 50
Você terá uma lista de diretórios ordenados por quantos inodes eles estão usando. Você provavelmente encontrará um com um número muito alto (provavelmente em /var
em algum lugar). Isso deve lhe dar uma idéia de quais arquivos você pode excluir, mas se você tiver alguma dúvida, pergunte aqui primeiro.
Como referência para o que pode ser normal, no meu computador (executando o Ubuntu 15.10), recebo a seguinte saída desse comando:
%pre%
Aqui está uma explicação do comando mais simples. sudo
é necessário para executar o du comando como root, para que possamos localizar arquivos em pastas que seu usuário normal possa não conseguir ler. du /
fornece o uso de disco do diretório raiz /
; --inodes
diz para listar o uso do inode, -S
para listar apenas os arquivos no próprio diretório e não nos subdiretórios e -x
para não cruzar os limites do sistema de arquivos (pois seu problema está definitivamente em /
e não em, por exemplo, /scratch
). Então nós canalizamos a saída desse comando para sort
para encontrar os piores transgressores; -r
inverte a classificação, de modo que os maiores estão no topo e -h
são ordenados numericamente e não alfabeticamente. Finalmente, head -n 50
apenas gera as primeiras 50 linhas (ou seja, os piores 50 ofensores).
Aqui está uma explicação do comando mais complicado. sudo
é necessário para executar o comando find como root, para que possamos localizar arquivos em pastas que seu usuário normal possa não conseguir ler. find /
fornece uma lista de todos os arquivos no diretório raiz /
; -xdev
diz a find
para não cruzar os limites do sistema de arquivos (já que seu problema está definitivamente em /
e não em, por exemplo, /scratch
); -printf '%hsort -z
'
imprime o nome do diretório que termina com um byte zero. Em seguida, canalizamos a saída desse comando para uniq -cz
e, em seguida, sort
para contar quantas vezes cada diretório foi impresso (ou seja, quantos arquivos estão em cada diretório); uniq
é necessário aqui, pois -r
precisa de uma lista classificada. Então, procuramos os piores criminosos; -n
inverte a classificação, de modo que os maiores estão no topo e tr 'head -n 50
' '\n'
são ordenados numericamente e não alfabeticamente. %code% substitui zero bytes por novas linhas. Finalmente, %code% apenas gera as primeiras 50 linhas (ou seja, os piores 50 ofensores).