Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Checklist para Migração de Servidor Linux: Guia Completo

19 min de leitura  ·  Guia técnico

Checklist para migração de servidor Linux é um guia sistemático que organiza todas as etapas necessárias para transferir dados, configurações e serviços de um servidor Linux para outro com o mínimo de interrupção. Uma migração bem planejada previne perda de dados, reduz tempo de inatividade e mantém a integridade dos serviços. Este guia completo aborda desde o planejamento inicial até a verificação pós-migração, garantindo uma transição segura e eficiente.

Pré-requisitos

  • Acesso root ou sudo aos servidores de origem e destino
  • Conhecimento básico de comandos Linux e administração de sistemas
  • Espaço em disco suficiente no servidor de destino (pelo menos 20% a mais que o utilizado no servidor atual)
  • Acesso ao painel de controle DNS para modificar registros
  • Backup completo do servidor atual antes de iniciar a migração
  • Conexão SSH estável entre os servidores

Planejamento da migração de servidor

O planejamento adequado é a fase mais crítica de qualquer migração de servidor Linux. Um plano bem estruturado reduz significativamente o risco de problemas durante a transferência e minimiza o tempo de inatividade dos serviços.

Inventário de serviços e aplicações

Comece documentando todos os serviços em execução no servidor atual. Isso ajudará a garantir que nada seja esquecido durante a migração.

systemctl list-units --type=service --state=running

Para listar todos os pacotes instalados no servidor de origem (em sistemas baseados em Debian/Ubuntu):

dpkg -l > pacotes_instalados.txt

Para sistemas baseados em RHEL/CentOS:

rpm -qa > pacotes_instalados.txt

Verificação de versões e compatibilidade

Confirme se o sistema operacional de destino é compatível com suas aplicações. Idealmente, use a mesma distribuição e versão para evitar problemas de compatibilidade.

cat /etc/os-release

Verifique as versões dos principais serviços como banco de dados, servidor web e linguagens de programação:

mysql --version
apache2 -v # ou nginx -v
php -v
python3 --version

Estimativa de tempo e janela de manutenção

Calcule o tempo necessário para a migração com base no volume de dados e na complexidade dos serviços. Para servidores com muitos sites e bancos de dados grandes, reserve pelo menos 8-12 horas. Notifique os usuários sobre o período de manutenção programada com pelo menos 48 horas de antecedência.

Preparação do ambiente de destino

A preparação adequada do servidor de destino é fundamental para uma migração de servidor Linux bem-sucedida. Esta etapa envolve configurar o novo ambiente para receber os dados e serviços do servidor original.

Instalação do sistema operacional

Instale a mesma distribuição e versão do Linux no servidor de destino. Se estiver atualizando para uma versão mais recente, verifique a compatibilidade de todos os serviços críticos.

Configuração de rede

Configure as interfaces de rede no novo servidor. Se possível, mantenha as mesmas configurações de IP para facilitar a migração:

nano /etc/netplan/01-netcfg.yaml   # Ubuntu 18.04+

Ou para sistemas baseados em RHEL/CentOS:

nano /etc/sysconfig/network-scripts/ifcfg-eth0

Instalação de pacotes e dependências

Instale os mesmos pacotes que estão no servidor de origem. Use o arquivo de inventário criado anteriormente:

Para sistemas Debian/Ubuntu:

apt update
cat pacotes_instalados.txt | awk '{print $2}' | xargs apt install -y

Para sistemas RHEL/CentOS:

yum update
yum install $(cat pacotes_instalados.txt)

Atenção: Este método pode não funcionar perfeitamente para todos os pacotes devido a dependências ou pacotes obsoletos. Esteja preparado para instalar manualmente alguns pacotes específicos.

Migração de dados e arquivos

A transferência de dados entre servidores Linux requer atenção especial para garantir que todos os arquivos sejam copiados com suas permissões e atributos intactos. Existem várias ferramentas que podem ser utilizadas para este processo.

Usando rsync para transferência de arquivos

O rsync é a ferramenta mais eficiente para transferir grandes volumes de dados, pois sincroniza apenas as diferenças entre os arquivos:

rsync -avzP -e "ssh -p 22" /caminho/origem/ usuario@ip-destino:/caminho/destino/

Para sincronizar todo o sistema de arquivos (excluindo diretórios virtuais):

rsync -avzP -e "ssh -p 22" --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / usuario@ip-destino:/

Atenção: Verifique cuidadosamente os caminhos antes de executar este comando, pois ele pode sobrescrever arquivos no destino.

Migração de bancos de dados

Para MySQL/MariaDB, exporte os bancos de dados no servidor de origem:

mysqldump --all-databases --single-transaction --quick --lock-tables=false > full_backup.sql -u root -p

Transfira o arquivo de backup para o servidor de destino:

scp full_backup.sql usuario@ip-destino:/tmp/

Importe no servidor de destino:

mysql -u root -p < /tmp/full_backup.sql

Para PostgreSQL:

pg_dumpall -U postgres > postgres_backup.sql
scp postgres_backup.sql usuario@ip-destino:/tmp/
psql -U postgres -f /tmp/postgres_backup.sql postgres

Preservação de permissões e propriedade

Certifique-se de que as permissões e propriedades dos arquivos sejam mantidas durante a transferência. O rsync com a opção -a (archive) preserva estas informações, mas verifique manualmente arquivos críticos:

find /caminho/importante -type f -exec stat -c "%a %n" {} \; > permissoes_antes.txt

No servidor de destino, execute o mesmo comando e compare os resultados:

diff permissoes_antes.txt permissoes_depois.txt

Migração de configurações de serviços

A transferência das configurações de serviços é uma etapa crucial na migração de servidor Linux, pois garante que todas as aplicações funcionem corretamente no novo ambiente. Cada serviço tem suas particularidades que precisam ser consideradas.

Servidor web (Apache/Nginx)

Para o Apache, transfira os arquivos de configuração:

rsync -avz /etc/apache2/ usuario@ip-destino:/etc/apache2/

Para o Nginx:

rsync -avz /etc/nginx/ usuario@ip-destino:/etc/nginx/

Após a transferência, verifique a sintaxe das configurações no servidor de destino:

apache2ctl configtest  # Para Apache
nginx -t               # Para Nginx

Bancos de dados (MySQL/MariaDB/PostgreSQL)

Além dos dados, transfira também as configurações dos bancos de dados:

rsync -avz /etc/mysql/ usuario@ip-destino:/etc/mysql/  # MySQL/MariaDB
rsync -avz /etc/postgresql/ usuario@ip-destino:/etc/postgresql/  # PostgreSQL

Ajuste os parâmetros de desempenho conforme necessário para o novo hardware:

nano /etc/mysql/my.cnf  # MySQL/MariaDB
nano /etc/postgresql/13/main/postgresql.conf  # PostgreSQL

PHP e outras linguagens

Transfira as configurações do PHP e outras linguagens de programação:

rsync -avz /etc/php/ usuario@ip-destino:/etc/php/

Verifique se as extensões necessárias estão habilitadas no novo servidor:

php -m > php_modules.txt

Serviços de email (Postfix/Dovecot)

Para servidores de email, transfira as configurações e caixas de correio:

rsync -avz /etc/postfix/ usuario@ip-destino:/etc/postfix/
rsync -avz /etc/dovecot/ usuario@ip-destino:/etc/dovecot/
rsync -avz /var/mail/ usuario@ip-destino:/var/mail/

Migração de certificados SSL

A transferência segura de certificados SSL é essencial para manter a segurança dos sites e serviços no novo servidor Linux. Esta etapa requer atenção especial às permissões e à integridade dos arquivos de certificado.

Transferência de certificados comerciais

Para certificados comerciais, localize e transfira os arquivos de certificado:

rsync -avz /etc/ssl/certs/ usuario@ip-destino:/etc/ssl/certs/
rsync -avz /etc/ssl/private/ usuario@ip-destino:/etc/ssl/private/

Atenção: Verifique as permissões dos arquivos de chave privada. Eles devem ser legíveis apenas pelo usuário root ou pelo serviço que os utiliza:

chmod 600 /etc/ssl/private/*.key

Migração de certificados Let's Encrypt

Para certificados Let's Encrypt, você pode transferir toda a configuração:

rsync -avz /etc/letsencrypt/ usuario@ip-destino:/etc/letsencrypt/

Alternativamente, você pode emitir novos certificados no servidor de destino:

certbot --apache  # Para Apache
certbot --nginx   # Para Nginx

Atualização de configurações de serviços para novos caminhos

Após transferir os certificados, verifique se os caminhos nos arquivos de configuração dos serviços estão corretos:

grep -r "ssl_certificate" /etc/nginx/
grep -r "SSLCertificateFile" /etc/apache2/

Atualize os caminhos se necessário e reinicie os serviços para aplicar as alterações:

systemctl restart nginx  # ou apache2

Migração de DNS e configurações de rede

A transição do DNS é uma das etapas mais delicadas da migração de servidor Linux, pois afeta diretamente a disponibilidade dos serviços para os usuários finais. Um planejamento cuidadoso minimiza o tempo de inatividade durante a migração.

Redução do TTL antes da migração

Dias antes da migração, reduza o TTL (Time To Live) dos registros DNS para minimizar o tempo de propagação:

; Exemplo de configuração de zona DNS
$TTL 300  ; Reduzir para 5 minutos (300 segundos)
@    IN    SOA    ns1.exemplo.com. admin.exemplo.com. (
                  2023042501  ; Serial
                  3600        ; Refresh
                  1800        ; Retry
                  604800      ; Expire
                  300         ; Minimum TTL
                  )

Estratégias para migração com mínimo downtime

Para minimizar o tempo de inatividade, considere estas estratégias:

  1. Mantenha ambos os servidores operacionais durante a transição
  2. Use sincronização contínua para manter os dados atualizados
  3. Implemente um proxy reverso temporário que possa alternar entre os servidores
  4. Considere o uso de balanceadores de carga se disponíveis

Para sincronização contínua:

while true; do
    rsync -avz --delete /caminho/dados/ usuario@ip-destino:/caminho/dados/
    sleep 300  # Sincroniza a cada 5 minutos
done

Atualização dos registros DNS

Quando estiver pronto para a transição, atualize os registros DNS para apontar para o novo servidor:

; Exemplo de atualização de registro A
exemplo.com.    IN    A    198.51.100.2  ; Novo IP (antes era 198.51.100.1)

Verifique a propagação DNS usando ferramentas online ou o comando dig:

dig exemplo.com +short

Configuração de redirecionamentos temporários

Para garantir que os usuários sejam redirecionados corretamente durante a transição, configure redirecionamentos no servidor antigo:

Para Apache:

<VirtualHost *:80>
    ServerName exemplo.com
    Redirect permanent / http://novo-servidor.exemplo.com/
</VirtualHost>

Para Nginx:

server {
    listen 80;
    server_name exemplo.com;
    return 301 $scheme://novo-servidor.exemplo.com$request_uri;
}

Verificação e testes pós-migração

Após a migração de servidor Linux, é crucial realizar verificações abrangentes para garantir que todos os serviços estejam funcionando corretamente no novo ambiente. Esta fase de testes previne problemas que poderiam afetar os usuários.

Verificação de serviços e processos

Confirme se todos os serviços necessários estão em execução no novo servidor:

systemctl list-units --type=service --state=running

Compare com a lista do servidor original para identificar serviços ausentes:

diff servicos_origem.txt servicos_destino.txt

Verifique os logs do sistema em busca de erros:

journalctl -p err..emerg -b

Testes de funcionalidade de aplicações

Teste cada aplicação e site hospedado no servidor:

  1. Verifique se todos os sites carregam corretamente
  2. Teste formulários e funcionalidades interativas
  3. Confirme se os bancos de dados estão respondendo adequadamente
  4. Verifique se os certificados SSL estão funcionando (sem avisos de segurança)

Para testar sites antes da propagação DNS, use o arquivo hosts local ou o comando curl com o cabeçalho Host:

curl -H "Host: exemplo.com" http://198.51.100.2/

Monitoramento de desempenho

Compare o desempenho do novo servidor com o antigo:

top
htop
iostat -x 1
vmstat 1

Para monitoramento mais detalhado, considere ferramentas como:

  • Netdata para monitoramento em tempo real
  • Prometheus + Grafana para métricas de longo prazo
  • Apache Benchmark (ab) ou wrk para testes de carga
ab -n 1000 -c 50 https://exemplo.com/

Verificação de backups

Confirme se os sistemas de backup estão configurados e funcionando no novo servidor:

systemctl status backup-service  # Substitua pelo nome do seu serviço de backup

Realize um backup de teste e verifique se ele pode ser restaurado:

rsnapshot daily  # Ou outro comando de backup que você utiliza
rsnapshot verify

Problemas comuns e como resolver

Mesmo com planejamento cuidadoso, problemas podem surgir durante a migração de servidor Linux. Conhecer os problemas mais comuns e suas soluções acelera o processo de resolução.

Sintoma: Permissões de arquivos incorretas

Causa: Durante a transferência, as permissões de arquivos podem ser alteradas, especialmente se a migração for feita entre sistemas com diferentes configurações de usuários e grupos.
Solução: Use o comando find para identificar e corrigir permissões críticas. Para diretórios web, por exemplo:

find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;
chown -R www-data:www-data /var/www

Sintoma: Serviços não iniciam após a migração

Causa: Configurações incompatíveis, dependências ausentes ou caminhos incorretos nos arquivos de configuração.
Solução: Verifique os logs de erro para identificar o problema específico:

journalctl -u nome-do-serviço

Corrija os caminhos nos arquivos de configuração e verifique se todas as dependências estão instaladas:

ldd /caminho/para/binario | grep "not found"

Sintoma: Bancos de dados corrompidos ou incompletos

Causa: Interrupção durante a transferência ou problemas de compatibilidade entre versões.
Solução: Restaure a partir do backup mais recente e verifique a integridade:

# Para MySQL/MariaDB
mysqlcheck --all-databases -u root -p

# Para PostgreSQL
vacuumdb --all --analyze

Sintoma: Certificados SSL não funcionam

Causa: Caminhos incorretos, permissões inadequadas ou certificados expirados.
Solução: Verifique a configuração e as permissões dos certificados:

openssl x509 -in /caminho/para/certificado.crt -text -noout | grep "Not After"

Corrija as permissões e caminhos nos arquivos de configuração do servidor web:

chmod 600 /etc/ssl/private/*.key
chmod 644 /etc/ssl/certs/*.crt

Sintoma: Problemas de DNS após a migração

Causa: Propagação DNS incompleta ou configurações incorretas.
Solução: Verifique se os registros DNS foram atualizados corretamente e aguarde a propagação completa:

dig +trace exemplo.com

Enquanto aguarda, você pode usar redirecionamentos temporários ou atualizar o arquivo hosts local para testes:

echo "198.51.100.2 exemplo.com www.exemplo.com" >> /etc/hosts

Perguntas frequentes sobre checklist para migração de servidor Linux

Quanto tempo leva uma migração completa de servidor Linux?

O tempo de migração varia conforme o volume de dados e a complexidade dos serviços. Para servidores pequenos, pode levar de 2 a 4 horas, enquanto servidores maiores com muitos sites e bancos de dados podem exigir de 8 a 24 horas, considerando o tempo de propagação DNS.

É possível migrar um servidor Linux sem downtime?

Sim, é possível realizar uma migração com downtime mínimo usando estratégias como sincronização contínua de dados com rsync, configuração prévia do novo servidor e ajuste de TTL DNS antes da migração. A técnica de DNS failover também permite uma transição quase imperceptível para os usuários.

Quais são os erros mais comuns durante a migração de servidores Linux?

Os erros mais comuns incluem permissões incorretas de arquivos, configurações incompatíveis entre versões de software, problemas de dependências, esquecimento de migrar bancos de dados, e falhas na configuração de DNS. Realizar testes completos antes de apontar o DNS para o novo servidor é essencial para evitar esses problemas.

É necessário ter o mesmo sistema operacional no servidor de destino?

Não é estritamente necessário, mas é altamente recomendado usar a mesma distribuição e versão para evitar problemas de compatibilidade. Migrar entre diferentes distribuições (como de CentOS para Ubuntu) ou entre versões muito distantes pode exigir ajustes significativos nas configurações e dependências de software.

Como migrar certificados SSL durante a transferência de servidor?

Para migrar certificados SSL, copie os arquivos de certificado (.crt), chave privada (.key) e cadeia de certificados (.ca-bundle) do servidor antigo para o novo, mantendo as permissões adequadas. Em servidores com Let's Encrypt, você pode reinstalar os certificados usando certbot no novo servidor ou transferir a configuração completa do /etc/letsencrypt.

Conclusão

A migração de servidor Linux é um processo complexo que requer planejamento cuidadoso e execução metódica. Seguindo este checklist completo, você pode minimizar riscos e garantir uma transição suave para o novo ambiente.

  • Sempre faça backups completos antes de iniciar qualquer processo de migração
  • Teste exaustivamente o novo servidor antes de apontar o DNS definitivamente
  • Mantenha o servidor antigo operacional por pelo menos uma semana após a migração para facilitar a reversão em caso de problemas

Lembre-se que cada ambiente tem suas particularidades, portanto, adapte este checklist às necessidades específicas do seu servidor. Com planejamento adequado e testes rigorosos, você pode realizar uma migração bem-sucedida com mínimo impacto para os usuários finais.

Precisa de ajuda com migração de servidores Linux?

A AviraHost oferece serviços especializados de migração de servidores Linux com downtime mínimo e suporte técnico 24/7. Nossa equipe de especialistas pode gerenciar todo o processo, garantindo que seus dados e configurações sejam transferidos com segurança.

Conheça nossos planos de Servidor VPS

  • 0 Usuários acharam útil
  • linux, migração, servidor, vps, checklist, backup, AviraHost
Esta resposta lhe foi útil?

Artigos Relacionados

Guia Completo: Como escolher o melhor plano de hospedagem para o seu site

Escolher o plano de hospedagem ideal para o seu site é fundamental para garantir seu bom...

Lista Prática: 5 Vantagens de ter SSL gratuito no seu site

Ter um certificado SSL no seu site não é apenas uma questão de segurança, mas também uma...

Comparativo: Hospedagem de sites vs. VPS: qual é a melhor opção?

Quando se trata de escolher entre hospedagem compartilhada ou VPS, as opções variam de acordo...

Dicas de Otimização de Servidores Linux

Dicas de Otimização de Servidores Linux Servidores Linux são amplamente utilizados por sua...

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online

Como Implementar Soluções Eficientes para Melhorar a Gestão de Serviços Online...