Linux & DevOps

Manutenção Preventiva em Servidores Linux: Rotação de Logs, Journalctl e Limpeza de Cache

Edson Feitosa de Oliveira Júnior
Edson Feitosa de Oliveira Júnior
Fundador & Desenvolvedor Full Stack

Servidores Linux costumam funcionar por anos sem reclamar, até o dia em que o disco enche com logs, uma atualização de segurança não aplicada é explorada ou um serviço trava sem ninguém perceber. Uma rotina simples de manutenção preventiva evita a maioria desses problemas. Este guia reúne os cuidados essenciais para servidores Ubuntu, com comandos prontos.

1. Atualizações de segurança

Atualize os pacotes regularmente:

sudo apt update && sudo apt upgrade

Para aplicar correções de segurança automaticamente, ative o unattended-upgrades:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades

Algumas atualizações de kernel exigem reinicialização. Verifique se existe o arquivo /var/run/reboot-required e programe a reinicialização em horário de pouco uso.

2. Espaço em disco

Disco cheio derruba bancos de dados e serviços web. Verifique com:

df -h

Para descobrir o que está ocupando espaço:

sudo du -xh / --max-depth=2 2>/dev/null | sort -h | tail -20

Locais comuns: /var/log, /var/lib/docker, /var/cache/apt e backups antigos esquecidos.

3. Logs do journald

O systemd guarda logs no journal, que pode crescer bastante. Veja quanto ocupa:

journalctl --disk-usage

Para limpar, mantendo só as últimas duas semanas ou um tamanho máximo:

sudo journalctl --vacuum-time=2weeks
sudo journalctl --vacuum-size=500M

Para limitar de forma permanente, defina SystemMaxUse=500M em /etc/systemd/journald.conf e reinicie o serviço com sudo systemctl restart systemd-journald.

4. Rotação de logs de aplicações

Logs de aplicações (Nginx, Apache, sistemas próprios) são controlados pelo logrotate. Confira se os arquivos em /etc/logrotate.d/ cobrem todas as aplicações e definem rotação, compressão e quantidade de arquivos guardados. Um exemplo para uma aplicação própria:

/var/log/minhaapp/*.log {
    daily
    rotate 14
    compress
    missingok
    notifempty
}

5. Cache de pacotes e kernels antigos

sudo apt autoremove --purge
sudo apt clean

O primeiro remove pacotes e kernels antigos que não são mais necessários; o segundo limpa o cache de downloads do apt.

6. Docker

Em servidores com Docker, imagens e volumes antigos acumulam rapidamente:

docker system df
docker system prune

Cuidado com docker system prune --volumes: ele apaga volumes não usados, que podem conter dados.

7. Serviços e falhas

8. Segurança básica

9. Backups e monitoramento

Faça backups automáticos para fora do servidor e teste a restauração. Veja backup de arquivos. Configure também um monitoramento externo simples que avise quando o site ou serviço sair do ar e alertas de disco acima de 80%.

Rotina sugerida

Para a visão geral de manutenção, veja manutenção preventiva vs corretiva.

PruPru no Linux

A PruPru Digital Services oferece o script nativo PruPru.sh para diagnóstico e limpeza rápida em distribuições Linux.

Baixar PruPru.sh para Linux →

Perguntas frequentes

Como limpar logs do journalctl com segurança?

Use sudo journalctl --vacuum-time=2weeks para manter só as duas últimas semanas, ou --vacuum-size=500M para limitar por tamanho. Para tornar o limite permanente, configure SystemMaxUse no journald.conf.

Atualizações automáticas podem quebrar o servidor?

O unattended-upgrades aplica, por padrão, apenas atualizações de segurança, que raramente causam problemas. Atualizações maiores devem ser feitas manualmente e com backup.

Com que frequência fazer manutenção no servidor?

Automatize atualizações de segurança, backups e alertas diariamente, revise disco e logs semanalmente e faça limpezas e revisões mais amplas uma vez por mês.

Falar no WhatsApp agora