# Disco cheio na VPS ("No space left on device"): o que fazer

> O erro No space left on device quer dizer que o disco da VPS encheu. As causas mais comuns são logs grandes, imagens, contêineres e volumes do Docker sem uso, cache do apt e backups guardados na própria VPS. Veja o tamanho com df -h, ache o que ocupa com du e, se o disco é pequeno para o que você usa, aumente o plano.

O erro `No space left on device` quer dizer que o disco da VPS encheu. As causas mais comuns são: logs grandes, imagens, contêineres e volumes do Docker sem uso, cache do apt e backups guardados na própria VPS. Comece vendo o tamanho do problema com `df -h`, ache o que ocupa espaço com `du` e só apague depois de saber o que é. Se o disco é pequeno para o que você usa, a solução é aumentar o plano.

> **Atenção: alguns comandos abaixo apagam arquivos de vez.** No terminal não há lixeira. Antes de qualquer limpeza, crie um snapshot da VPS pelo painel, como em "Como criar um snapshot da sua VPS pelo painel antes de uma mudança", e leia o que cada comando apaga.

## Sintomas

- Programas e comandos falham com `No space left on device` ou `write error: No space left on device`.
- O site ou a aplicação sai do ar, o banco de dados para ou não sobe mais.
- O `apt` falha com `You don't have enough free space`.
- O Docker não cria contêiner nem baixa imagem (`no space left on device`).
- No painel, o quadro **Disco raiz** da **Visão geral** da VPS aparece cheio.

Os comandos deste artigo valem para o Ubuntu e o Debian, os sistemas das VPS da StayCloud, e supõem que você entrou como `root` (veja "Como acessar sua VPS por SSH pelo terminal (Linux, Windows e Mac)"). Primeiro, veja o tamanho do problema:

```
df -h /
```

A coluna `Use%` mostra quanto do disco principal está ocupado. Para achar as pastas maiores:

```
du -sh /* 2>/dev/null | sort -h | tail -n 10
```

## Causa 1: logs grandes

**Como confirmar:** veja o tamanho dos logs do sistema e das pastas de log:

```
journalctl --disk-usage
du -sh /var/log/* 2>/dev/null | sort -h | tail -n 10
```

Logs de vários GB, no journal ou em `/var/log`, são a causa.

**Como resolver:** reduza o journal (o registro do sistema), que apaga as mensagens mais antigas e mantém as mais recentes até o tamanho indicado:

```
journalctl --vacuum-size=200M
```

Para o journal não crescer de novo, abra `/etc/systemd/journald.conf`, coloque a linha `SystemMaxUse=200M` e rode `systemctl restart systemd-journald`.

Para um arquivo de log de aplicação muito grande, esvazie o arquivo em vez de apagar (apagar um log aberto não libera o espaço até o programa reiniciar). Isto apaga o conteúdo do log:

```
truncate -s 0 /var/log/<ARQUIVO>.log
```

## Causa 2: imagens, contêineres e volumes do Docker sem uso

**Como confirmar:** se a VPS usa Docker, veja quanto ele ocupa e quanto dá para recuperar (coluna `RECLAIMABLE`):

```
docker system df
```

Os logs dos contêineres também crescem. Veja os maiores:

```
du -sh /var/lib/docker/containers/*/*-json.log 2>/dev/null | sort -h | tail -n 5
```

**Como resolver:** limpe por partes, sabendo o que cada comando apaga (a documentação oficial está em `docs.docker.com/engine/manage-resources/pruning/`):

```
docker container prune
```

Apaga todos os contêineres **parados**. Se a VPS usa o instalador do painel ou o EasyPanel, os apps rodam em contêineres: um app parado de propósito também é apagado.

```
docker image prune -a
```

Apaga as imagens que nenhum contêiner usa. Elas são baixadas de novo quando você precisar.

```
docker builder prune
```

Apaga o cache de build de imagens.

```
docker volume ls
docker volume prune
```

**Cuidado:** volumes guardam dados, como os de um banco de dados. O `volume prune` apaga os que nenhum contêiner está usando agora. Só rode depois de conferir a lista com `docker volume ls` e com o snapshot feito. Evite o `docker system prune -a --volumes`, que apaga tudo isso de uma vez.

Para os logs dos contêineres não crescerem sem limite, configure a rotação no `/etc/docker/daemon.json`, como na documentação oficial (`docs.docker.com/engine/logging/drivers/json-file/`), e reinicie o Docker. A regra vale para contêineres criados depois da mudança.

## Causa 3: cache do apt

**Como confirmar:** veja o tamanho do cache dos pacotes baixados:

```
du -sh /var/cache/apt
```

**Como resolver:** apague os pacotes baixados (eles já foram instalados e podem ser baixados de novo) e remova os pacotes que não são mais usados, como kernels antigos:

```
apt clean
apt autoremove
```

O `apt autoremove` mostra a lista do que vai remover e pede confirmação: leia antes de responder `Y`.

## Causa 4: backups e arquivos grandes guardados na VPS

**Como confirmar:** procure arquivos acima de 500 MB no disco principal:

```
find / -xdev -type f -size +500M -exec ls -lh {} \; 2>/dev/null
```

Cópias de banco (`.sql`, `.sql.gz`), arquivos compactados (`.tar.gz`, `.zip`) e backups em `/root`, `/home` ou `/var/backups` costumam aparecer aqui.

**Como resolver:** baixe para o seu computador o que precisa guardar e depois apague na VPS. No terminal do seu computador:

```
scp root@<IP_DA_VPS>:/root/<ARQUIVO> .
```

Depois, na VPS, apague o arquivo com `rm /root/<ARQUIVO>`. Backup guardado só na própria VPS some junto com ela: mantenha uma cópia fora.

## Causa 5: arquivo apagado que ainda está aberto

**Como confirmar:** o `df -h` mostra o disco cheio, mas o `du` não encontra onde está o espaço. Um programa pode estar segurando um arquivo já apagado:

```
find /proc/*/fd -ls 2>/dev/null | grep '(deleted)'
```

**Como resolver:** reinicie o serviço que aparece segurando o arquivo, por exemplo `systemctl restart <SERVICO>`. O espaço é liberado na hora. Veja "Como ver e gerenciar serviços na VPS via SSH".

## Causa 6: o disco é pequeno para o que você usa

**Como confirmar:** depois da limpeza, o uso volta a passar de 90% em pouco tempo, ou o que ocupa espaço são dados que você precisa manter.

**Como resolver:** aumente o plano em **Minhas VPS › Gerenciar › Plano**, com **Mudar de plano**. O passo a passo está em "Como mudar o plano da VPS pelo painel". Depois da troca, confira o tamanho novo com `df -h`.

## Quando chamar o Suporte

Na VPS, você tem acesso root e cuida do que instala; o suporte da StayCloud cuida da infraestrutura: a VPS ligada, a rede e o painel, e não escolhe nem apaga os seus arquivos. Veja "Perguntas frequentes sobre o que o suporte da StayCloud faz". Abra um chamado se, depois de mudar o plano, o `df -h` não mostra o disco maior, ou se o disco cheio impede a VPS de ligar e nem o Console SSH do painel abre.

No chamado, informe o IP da VPS ou o nome dela no painel, o horário, a mensagem de erro literal, a saída de `df -h` e de `du -sh /* 2>/dev/null | sort -h`, o que você já apagou e o que já tentou. O passo a passo está em "Como abrir um chamado no Suporte".

## Relacionados

- Como ver o consumo de CPU, memória e disco da VPS via SSH
- Como ver o uso de CPU, memória e disco da sua VPS pelo painel
- Como criar um snapshot da sua VPS pelo painel antes de uma mudança
- Como mudar o plano da VPS pelo painel
- Como instalar o Docker na VPS via SSH
- Comandos básicos de Linux para usar na sua VPS via SSH
- Perguntas frequentes sobre o que o suporte da StayCloud faz
- Como abrir um chamado no Suporte

---
Fonte: https://help.staycloud.com/artigos/disco-cheio-na-vps-no-space-left-on-device-o-que-fazer
