Como resolver o erro de disco cheio no servidor Linux?
Um guia para encontrar ficheiros grandes, limpar registos em segurança e libertar espaço no servidor.
Um dos problemas mais comuns nos servidores Linux é que o disco fica completamente cheio. Quando o disco fica cheio, os sites não conseguem gravar ficheiros, os serviços de base de dados podem deixar de funcionar, os servidores de jogos podem não registar registos e alguns serviços podem nem sequer iniciar.
Este erro é geralmente reconhecido pelos seguintes sintomas:
- Falha ao enviar ficheiros para o servidor
- Desligamento ou erro do serviço de base de dados
- Erro "Não resta espaço no dispositivo" a aparecer no painel
- O servidor de jogo é encerrado porque não consegue iniciar sessão.
- 500 erros ou páginas em branco ocorrem em sites
1. Verificando o uso do disco
Primeiro, verifique qual a partição de disco do servidor que está cheia.
df -h
aqui especialmente Usar% área é considerada. Se uma secção for de 90% ou superior, significa que o risco começou. Se estiver 100% cheio, os serviços não conseguirão gravar ficheiros.
2.º Encontre as pastas que ocupam mais espaço
Quando o disco está cheio, o problema são normalmente os registos, backups ou ficheiros de cache acumulados numa única pasta. Verifique pastas grandes, começando no diretório raiz.
du -h --max-depth=1 / 2>/dev/null | sort -h
Este comando mostra quanto espaço ocupam os diretórios de início. Normalmente são verificados os seguintes diretórios:
- /var/log - Registos de sistema e serviço
- /casa - Ficheiros de utilizadores e sites
- /backup - Arquivos de backup antigos
- /tmp - Arquivos temporários
- /var/lib/mysql - Ficheiros de base de dados MySQL/MariaDB
3.º Liste ficheiros grandes
Por vezes, um único ficheiro de registo pode crescer até 10 GB ou mais. Para encontrar ficheiros grandes, pode utilizar este comando:
find / -type f -size +500M -exec ls -lh {} \; 2>/dev/nullEste comando lista os ficheiros com mais de 500 MB. Examine os ficheiros resultantes cuidadosamente. Especialmente . log, .velho, . gz, . bak e os ficheiros de cópia de segurança antigos devem ser verificados.
4. Limpeza segura de ficheiros de registo
Apagar diretamente o ficheiro de registo de um serviço em execução por vezes não produz o resultado esperado. Porque o serviço pode continuar a manter o ficheiro aberto. Portanto, o método mais seguro ao limpar ficheiros de registo grandes é esvaziá-los.
truncate -s 0 /var/log/dosya_adi.log
Exemplo:
truncate -s 0 /var/log/syslog truncate -s 0 /var/log/messages truncate -s 0 /var/log/nginx/error.log
5. Limpeza da cache de pacotes
Em sistemas baseados em Ubuntu e Debian, os ficheiros de cache de pacotes podem ocupar espaço em disco com o tempo.
apt clean apt autoremove -y
Em sistemas CentOS, AlmaLinux ou Rocky Linux:
yum clean all dnf clean all
6. Verificando backups antigos
Os ficheiros que ocupam mais espaço nos servidores de alojamento e de jogos são geralmente backups antigos. Especialmente se existir um sistema de cópia de segurança automática, poderão ser feitos novos backups todos os dias e os backups antigos não poderão ser eliminados.
find /backup -type f -mtime +7 -name "*.tar.gz" -ls
Este comando lista os backups com mais de 7 dias. Para eliminar depois de ter a certeza:
find /backup -type f -mtime +7 -name "*.tar.gz" -delete
7. Evite recarregar com a configuração Logrotate
Mesmo que o disco seja limpo, se a causa não for corrigida, o mesmo problema voltará a ocorrer passados alguns dias. Para tal, a configuração do logrotate deve ser verificada.
nano /etc/logrotate.conf
Exemplo de lógica logrotate simples:
/var/log/*.log {
daily
rotate 7
compress
missingok
notifempty
}Esta configuração devolve os ficheiros de registo diariamente, mantém-nos durante 7 dias e compacta os logs antigos.
Erros Comuns
- Apagar ficheiros do sistema sem saber qual o ficheiro que é
- Apagar o ficheiro de registo em execução e não reiniciar o serviço
- Manter cópias de segurança antigas por um período de tempo ilimitado
- Não verificar as configurações do logrotate
- Não intervenha até que o disco esteja 100% cheio
Perguntas frequentes
Porque é que o servidor apresenta um erro quando o disco está cheio?
Porque os serviços não podem escrever registos, caches, ficheiros temporários ou bases de dados. Os serviços poderão ser terminados quando a operação de escrita falhar.
É melhor apagar ou esvaziar o ficheiro de registo?
Em vez de eliminar completamente o ficheiro de registo nos serviços em execução truncar É mais seguro esvaziá-lo usando.
Limpei o disco mas o espaço não foi libertado, porquê?
O ficheiro eliminado pode ainda ser mantido aberto por um serviço em execução. Pode ser necessário reiniciar o serviço relevante.
Recomendações de desempenho e segurança
- Monitorize o uso do disco regularmente.
- Armazene os backups num disco separado ou numa área de backup remota.
- Não deixe um serviço em execução durante muito tempo sem utilizar o logrotate.
- Tome precauções quando o disco atingir o nível de 85%.
- Não deixe os registos de depuração constantemente abertos nos servidores do jogo.
Este artigo foi preparado especialmente para o PvPServer.