No space left on device: como descobrir o que enche o disco do VPS

O erro No space left on device quer dizer uma de duas coisas: o espaço acabou, ou acabaram os inodes (o número de ficheiros que o disco aceita). Veja as duas com df -h e df -i; depois descubra a pasta culpada com du. Num VPS não gerido, limpar é consigo, e vale a pena fazê-lo depressa: com o disco cheio os serviços deixam de escrever, as bases de dados podem corromper-se e o próprio SSH pode recusar a entrada.

Passo a passo

1 Ver o espaço e os inodes. df -h mostra, por disco, o tamanho e a percentagem usada. df -i mostra os inodes. Se o espaço está a 100% o problema é espaço; se os inodes estão a 100% e o espaço não, são milhões de ficheiros pequenos (sessões, caches, ficheiros de correio).
2 Procurar a pasta grande, de cima para baixo. sudo du -xh --max-depth=1 / | sort -h | tail e depois entre na maior: sudo du -xh --max-depth=1 /var | sort -h | tail. O -x não sai do disco em que está. Repita até chegar ao ficheiro.
3 Perceber o que é antes de apagar. Um registo grande, uma cópia esquecida e uma imagem de contentor apagam-se de formas diferentes. Nunca apague a pasta de uma base de dados à mão.
4 Libertar o que é seguro. Ver a tabela abaixo.
5 Confirmar. df -h outra vez. Se apagou um ficheiro e o espaço não voltou, veja o aviso sobre ficheiros apagados mas abertos.

Os suspeitos do costume

Onde O que fazer
/var/log (registos) Veja o que é grande e se o logrotate o gira: onde estão os registos. Para esvaziar um registo que está em uso, sudo truncate -s 0 /var/log/ficheiro.log é mais seguro do que apagá-lo.
O diário do systemd journalctl --disk-usage e, se for grande, sudo journalctl --vacuum-size=200M (exemplo).
Cache de pacotes (Debian/Ubuntu) sudo apt clean e sudo apt autoremove (este remove pacotes que já ninguém usa; leia a lista antes de aceitar).
/var/lib/docker Imagens, volumes e registos de contentores: Docker a encher o disco.
Cópias de segurança no próprio servidor Uma cópia no mesmo disco ocupa espaço e perde-se com ele. Mova-a para outro lado: copiar com rsync.
Sessões, caches e ficheiros temporários de aplicações Costumam ser os que gastam inodes. Cada aplicação tem a sua pasta; consulte a documentação dela antes de limpar.
Bases de dados Registos binários e tabelas que cresceram. Veja a base de dados cresceu.
Apagou um ficheiro enorme e o espaço não voltou? Provavelmente um programa ainda o tem aberto, e o sistema só liberta o espaço quando ele o fecha. sudo lsof +L1 lista esses ficheiros (instale o lsof se faltar) e mostra o programa; reinicie esse serviço e o espaço volta.
Não apague às cegas fora do que reconhece. /boot, /usr, /lib e /etc pertencem ao sistema. Um rm -rf com um espaço a mais no caminho é a forma mais rápida de reinstalar o servidor (reinstalar o sistema).
Se o disco é pequeno para o que faz, a solução não é limpar todas as semanas. Veja na página do plano e no seu serviço em Meu Interweb o que o plano permite quanto a espaço, ou ponha os dados pesados noutro sítio. Para ver o que cresce ao longo do tempo, veja ver o que usa CPU, memória e disco.

Não consegue entrar por SSH porque o disco está cheio? A consola do painel entra sem passar pela rede; diga-nos o que vê.

Abrir um pedido de suporte

VEJA TAMBÉM

Onde estão os registos num VPS Linux

Docker a encher o disco

Ver o que usa CPU, memória e disco

Erros comuns de VPS e Cloud

PRODUTO RECOMENDADO

Servidor VPS com acesso root

Recursos só seus, o sistema que escolher, reinstalação quando quiser. desde 7.560,00 Kz/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?