> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://ajuda.fabweb.com.br/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Como manter meu servidor linux atualizado

# Introdução
Manter o sistema operacional atualizado é uma das principais medidas para preservar a segurança, a estabilidade e o bom funcionamento de um servidor Linux.
As atualizações disponibilizadas pelos repositórios oficiais podem incluir:
* Correções de vulnerabilidades.
* Correções de falhas e erros.
* Melhorias de estabilidade.
* Atualizações de bibliotecas e serviços.
* Novas versões do kernel compatíveis com a distribuição.
Neste tutorial, vamos ensinar como atualizar servidores baseados em **Ubuntu, Debian e AlmaLinux** utilizando o terminal SSH.

⚠️ Este procedimento atualiza os pacotes da versão atualmente instalada. Ele não realiza a migração para uma nova versão principal do sistema operacional.
---
# Requisitos
Antes de iniciar, você precisa ter:
* Acesso SSH ao servidor.
* Permissões administrativas por meio do usuário **root** ou do comando **sudo**.
* Um backup atualizado dos dados e configurações importantes.
* Espaço disponível em disco.
* Uma janela de manutenção, caso seja necessário reiniciar o servidor.
---
# Informações importantes
Antes de realizar qualquer atualização:
* Confirme se os backups estão atualizados e podem ser restaurados.
* Verifique se existe espaço disponível, principalmente nas partições `/`, `/var` e `/boot`.
* Considere criar um snapshot da máquina virtual, caso esse recurso esteja disponível.
* Evite atualizar servidores críticos durante horários de maior utilização.
* Mantenha acesso ao console da máquina virtual para situações em que o SSH não retorne após uma reinicialização.
* Verifique se aplicações, painéis de controle e repositórios de terceiros são compatíveis com as atualizações.
A documentação do Debian recomenda manter cópias de segurança dos dados e configurações que não podem ser perdidos antes de processos de atualização.
---
# Como identificar o sistema operacional

### 1º Passo: Acessar o servidor via SSH
Conecte-se ao servidor utilizando o usuário **root** ou outro usuário com permissão administrativa.
Exemplo:
```
ssh root@IP_DO_SERVIDOR
```
Substitua **IP_DO_SERVIDOR** pelo endereço IP do servidor.
---
### 2º Passo: Verificar a distribuição instalada
Execute:
```
cat /etc/os-release
```
O resultado apresentará informações como:
```
NAME="Ubuntu"
VERSION="24.04 LTS"
```
Ou:
```
NAME="Debian GNU/Linux"
VERSION="13 (trixie)"
```
Ou:
```
NAME="AlmaLinux"
VERSION="9"
```
Essa identificação é importante porque cada família de distribuições utiliza um gerenciador de pacotes diferente.
---
### 3º Passo: Verificar o espaço disponível
Execute:
```
df -h
```
Verifique principalmente o uso das partições:
```
/
/var
/boot
```
⚠️ Caso alguma partição esteja próxima de 100% de utilização, libere espaço antes de iniciar a atualização.
Também é possível verificar o espaço ocupado pelo diretório de inicialização:
```
du -sh /boot
```
---
# Como atualizar Ubuntu ou Debian
Servidores Ubuntu e Debian utilizam o gerenciador de pacotes **APT**.
### 1º Passo: Atualizar a lista de pacotes
Execute:
```
sudo apt update
```
Caso esteja conectado diretamente como root, também poderá executar:
```
apt update
```
Esse comando consulta os repositórios configurados no servidor e atualiza a lista de versões disponíveis.
⚠️ O comando `apt update` apenas atualiza a lista de pacotes. Ele ainda não instala as atualizações.
---
### 2º Passo: Verificar as atualizações disponíveis
Execute:
```
apt list --upgradable
```
O sistema apresentará os pacotes que possuem versões mais recentes disponíveis.
Analise a lista antes de prosseguir, principalmente quando o servidor utiliza:
* Banco de dados.
* Servidor web.
* Painel de controle.
* PHP.
* Docker.
* Repositórios externos.
* Aplicações com dependências específicas.
---
### 3º Passo: Instalar as atualizações
Execute:
```
sudo apt upgrade
```
O sistema exibirá um resumo contendo:
* Pacotes que serão atualizados.
* Pacotes que serão mantidos na versão atual.
* Espaço necessário para download.
* Alteração estimada no uso do disco.
Digite:
```
Y
```
Em seguida, pressione **Enter** para confirmar.
O procedimento recomendado pelo Ubuntu consiste em atualizar primeiro o índice de pacotes com `apt update` e depois instalar as novas versões com `apt upgrade`.
---
### 4º Passo: Verificar pacotes que permaneceram pendentes
Após a atualização, execute novamente:
```
apt list --upgradable
```
Caso alguns pacotes permaneçam pendentes por dependerem da instalação ou remoção de outros pacotes, poderá ser necessário executar:
```
sudo apt full-upgrade
```
⚠️ O comando `apt full-upgrade` pode instalar novos pacotes ou remover pacotes existentes para concluir as atualizações. Revise cuidadosamente o resumo apresentado antes de confirmar.
A documentação do Debian informa que o `full-upgrade` pode instalar ou remover pacotes quando isso for necessário para concluir a atualização.
---
### 5º Passo: Remover dependências que não são mais utilizadas
Após concluir a atualização, verifique quais pacotes podem ser removidos:
```
sudo apt autoremove
```
Analise a relação apresentada antes de confirmar.
Para remover também os arquivos de configuração dos pacotes desnecessários, poderá ser utilizado:
```
sudo apt autoremove --purge
```
⚠️ Não confirme a remoção caso reconheça algum pacote necessário para uma aplicação ou serviço do servidor.
---
### 6º Passo: Limpar o cache de pacotes
Para remover os pacotes baixados que permanecem armazenados no cache, execute:
```
sudo apt clean

```
Esse comando pode ajudar a liberar espaço no diretório:
```
/var/cache/apt/archives

```
---
### 7º Passo: Verificar se uma reinicialização é necessária
Em muitos servidores Ubuntu e Debian, a necessidade de reinicialização é registrada no arquivo:
```
/var/run/reboot-required
```
Para verificar, execute:
```
if [ -f /var/run/reboot-required ]; then
    echo "O servidor precisa ser reiniciado."
    cat /var/run/reboot-required.pkgs 2>/dev/null
else
    echo "Nenhuma reinicialização foi indicada pelo sistema."
fi
```
⚠️ A ausência desse arquivo não garante que nenhum serviço precise ser reiniciado. Aplicações importantes também devem ser verificadas após a atualização.

---
# Como atualizar AlmaLinux
Servidores AlmaLinux utilizam o gerenciador de pacotes **DNF**.

### 1º Passo: Verificar as atualizações disponíveis
Execute:
```
sudo dnf check-update
```
Caso esteja conectado como root:
```
dnf check-update
```
O sistema apresentará a relação dos pacotes que possuem atualizações disponíveis.
⚠️ O comando pode retornar o código de saída `100` quando existem atualizações disponíveis. Esse retorno não representa necessariamente uma falha.
---
### 2º Passo: Atualizar os pacotes
Execute:
```
sudo dnf update
```
O sistema exibirá um resumo da operação, incluindo:
* Pacotes que serão atualizados.
* Dependências envolvidas.
* Tamanho do download.
* Alterações que serão realizadas.
Digite:
```
y
```
Em seguida, pressione **Enter** para iniciar.
A documentação oficial do AlmaLinux orienta a utilização do comando `dnf update` para verificar e instalar as atualizações disponíveis no sistema.
---
### 3º Passo: Atualizar somente correções de segurança
Caso seja necessário instalar apenas atualizações classificadas como segurança, execute:
```
sudo dnf update --security
```
Sem a opção `--security`, o comando `dnf update` instala também correções de falhas e melhorias gerais, além das atualizações de segurança.
Para consultar os avisos de segurança disponíveis, execute:
```
sudo dnf updateinfo list security
```
⚠️ Em uma manutenção completa, normalmente é recomendado instalar todas as atualizações disponíveis, desde que elas tenham sido previamente avaliadas.
---
### 4º Passo: Verificar processos que precisam ser reiniciados
Após a atualização, execute:
```
sudo dnf needs-restarting
```
O resultado poderá apresentar processos que ainda utilizam versões antigas de bibliotecas ou arquivos atualizados.
A documentação da família Enterprise Linux recomenda o comando `dnf needs-restarting` para identificar processos que precisam ser reiniciados após as atualizações.
Caso o comando não esteja disponível, instale o conjunto de plugins do DNF:
```
sudo dnf install dnf-plugins-core
```
Depois, execute novamente:
```
sudo dnf needs-restarting
```
---
### 5º Passo: Remover dependências não utilizadas
Para verificar e remover dependências que não são mais necessárias, execute:
```
sudo dnf autoremove
```
⚠️ Revise atentamente a lista de pacotes antes de confirmar a remoção.
---
### 6º Passo: Limpar o cache do DNF
Execute:
```
sudo dnf clean all
```
Esse comando remove metadados e pacotes armazenados no cache local do DNF.
Na próxima utilização, o gerenciador baixará novamente os metadados necessários dos repositórios.
---
# Como reiniciar o servidor
Atualizações de kernel, bibliotecas essenciais e componentes do sistema podem exigir uma reinicialização.
Antes de reiniciar, é recomendado verificar se:
* Se a manutenção foi comunicada.
* Se os backups estão disponíveis.
* Se não existem processos importantes em andamento.
* Se existe acesso ao console da máquina virtual.
* Se os serviços estão configurados para iniciar automaticamente.
Para reiniciar, execute:
```
sudo reboot
```
A conexão SSH será encerrada durante o processo.
Aguarde o retorno do servidor e realize uma nova conexão:
```
ssh usuario@IP_DO_SERVIDOR
```
---
# Como verificar o servidor após a atualização
### 1º Passo: Verificar o tempo de atividade
Execute:
```
uptime
```
Caso o servidor tenha sido reiniciado recentemente, o tempo de atividade será baixo.
### 2º Passo: Verificar o kernel em execução
Execute:
```
uname -r
```
O comando mostrará a versão do kernel atualmente carregada.
Exemplo:
```
6.8.0-71-generic
```
⚠️ A instalação de um kernel novo não significa que ele já está em execução. Normalmente, o novo kernel será carregado somente depois da reinicialização.
---
### 3º Passo: Verificar serviços com falha
Execute:
```
systemctl --failed
```
Caso nenhum serviço apresente falha, o resultado deverá indicar:
```
0 loaded units listed
```
Se algum serviço estiver com problema, consulte os detalhes:
```
systemctl status NOME_DO_SERVICO
```
Exemplo:
```
systemctl status nginx
```
Para consultar os registros do serviço:
```
journalctl -u NOME_DO_SERVICO --since today
```
---
### 4º Passo: Verificar os principais serviços
Confira os serviços utilizados pelo servidor, como:
```
systemctl status ssh
systemctl status nginx
systemctl status apache2
systemctl status httpd
systemctl status mysql
systemctl status mariadb
systemctl status docker

```
⚠️ Os nomes dos serviços variam conforme o sistema e os programas instalados. Um serviço inexistente apresentará uma mensagem informando que a unidade não foi encontrada.
Também é recomendado testar externamente:
* Acesso SSH.
* Sites hospedados.
* Bancos de dados.
* Aplicações.
* APIs.
* Servidores de e-mail.
* Painéis de gerenciamento.
* Rotinas de backup.

---
# Comandos resumidos
## Ubuntu ou Debian
```
sudo apt update
apt list --upgradable
sudo apt upgrade
sudo apt autoremove
sudo apt clean

```
Quando necessário e após revisar as alterações:
```
sudo apt full-upgrade

```
## AlmaLinux
```
sudo dnf check-update
sudo dnf update
sudo dnf needs-restarting
sudo dnf autoremove
sudo dnf clean all

```

---
# Atualização de versão do sistema operacional
Os comandos apresentados neste tutorial atualizam apenas os pacotes disponíveis para a versão instalada. Eles não são usados para atualização de versão do sistema operacional (ex: atualizar de ubuntu 22 para ubuntu 24).
---
# Recomendações de segurança
* Mantenha uma rotina periódica de atualização.
* Priorize correções de segurança.
* Teste atualizações em um ambiente de homologação quando possível.
* Não execute atualizações sem possuir backup.
* Evite utilizar indiscriminadamente a opção `-y` em servidores de produção.
* Revise os pacotes que serão instalados, alterados ou removidos.
* Verifique os serviços após cada manutenção.
* Reinicie o servidor quando houver atualização do kernel ou quando isso for indicado pelo sistema.
* Documente a data da manutenção e as alterações realizadas.
---
# Considerações finais
A atualização regular do sistema operacional reduz a exposição a vulnerabilidades conhecidas e ajuda a manter os serviços estáveis.
Em servidores de produção, o procedimento deve ser realizado de forma controlada, com backup, acompanhamento dos comandos executados e validação dos serviços após a conclusão.
⚠️ Caso a atualização apresente erros de repositório, dependências quebradas ou remoção inesperada de pacotes, não prossiga sem antes identificar a causa.


Ficou com alguma dúvida? Nossa equipe está à disposição através do chat ou e-mail para lhe auxiliar.