Fui checar quanto meu SSD ainda tem disponível:

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
[...]
/dev/nvme0n1p4  220G  190G   20G  91% /
[...]
/dev/sda1       916G  213G  657G  25% /home/rafaellcoellho/External

Só 20 GB sobrando? Preciso melhorar isso.

Esse post vai ser sobre o processo de liberar espaço no meu Linux para quando no futuro acontecer a mesma coisa poderei partir do mesmo lugar.

Achei uma resposta no StackOverflow sobre como ir gradualmente olhando o tamanho das pastas até encontra o culpado.

Investigando

Executando primeiramente:

$ sudo du -cha --max-depth=1 / | grep -E "M|G"
[...]
282G	/home
[...]
406G	/
406G	total

Meu SSD está usando 190 GB, como que no total tem 406 GB?

Deve ser em decorrência do meu HD externo estar montado numa pasta dentro do \home. Olhando no manual do du encontrei a opção -x:

-x, --one-file-system
      skip directories on different file systems

Perfeito, agora é só adicionar a flag:

$ sudo du -chax --max-depth=1 / | grep -E "M|G"
5,0G	/opt
2,5M	/@System.solv
70G	/home
42M	/etc
100G	/var
15G	/usr
738M	/root
190G	/
190G	total

Agora sim! 190 GB é exatamente o valor utilizado. Então a pasta mais suspeita é o \var. Interessante, vou continuar rodando o comando até encontrar algo.

$ sudo du -chax --max-depth=1 /var/lib | grep -E "M|G"
3,2M	/var/lib/gdm
301M	/var/lib/mongo
34M	/var/lib/sss
1,1M	/var/lib/PackageKit
280K	/var/lib/NetworkManager
1,5G	/var/lib/snapd
195M	/var/lib/rpm
27G	/var/lib/flatpak
11M	/var/lib/dnf
68G	/var/lib/docker
13M	/var/lib/texmf
28M	/var/lib/selinux
205M	/var/lib/mlocate
97G	/var/lib
97G	total

Parece que encontramos um bom candidato a ser o culpado. O docker sozinho está ocupando 60G. Se for possível diminuir 80% desse valor já seria o suficiente para fazer meu SSD respirar por mais alguns meses.

A primeira coisa que pensei foi rodar docker system prune. Mas fiquei preocupado em apagar algo que eu uso no meu dia a dia de trabalho. Preciso garantir que ele não apague os contêineres e volumes que eu realmente uso.

$ docker system df
TYPE            TOTAL     ACTIVE    SIZE      RECLAIMABLE
Images          24        5         13.69GB   12.23GB (89%)
Containers      6         0         3.793GB   3.793GB (100%)
Local Volumes   221       5         50.62GB   50.57GB (99%)
Build Cache     0         0         0B        0B

Então vamos limpar esses volumes e imagens não utilizados:

$ docker volume prune                                                                             
WARNING! This will remove all local volumes not used by at least one container.
[...]

Total reclaimed space: 50.57GB

$ docker image prune
WARNING! This will remove all dangling images.
[...]

Total reclaimed space: 6.702GB

Yay. Acredito que já é mais que o suficiente pela limpeza de hoje.

Referências