Tutoriais
Tutoriais HostMídia

Como migrar um site usando SSH

Introdução

Muitas vezes migrar uma conta de hospedagem entre o antigo e o novo hosting, entre o antigo e o novo servidor, é a principal razão para alguém adiar a decisão de mudar para uma nova empresa.

O trabalho que isso – a migração entre dois servidores – faz-se sentir ainda mais, quando a quantidade de arquivos e pastas do site é muito grande, o que pode significar muito tempo, especialmente se não se tem uma conexão com a Internet com boa velocidade.

O que pouca gente sabe, é que existe uma alternativa segura, bem mais rápida do que os métodos usuais que fazem uso do FTP e ainda é mais simples. Estamos falando da transferência usando o SSH.

É mais segura porque utiliza criptografia na comunicação entre os pontos da rede em que a informação trafega. É mais rápida porque requer menos processos e porque geralmente as conexões usadas pelos servidores envolvidos são mais rápidas. É mais simples, porque o procedimento associado tem menos etapas.

Dependendo dos ambientes de hospedagem utilizados no antigo e novo hosting, o processo pode servir para mudar a conta inteira, quando eles são iguais. No entanto, como em muitos casos podem haver particularidades, mesmo quando a princípio supõem-se iguais, vamos concentrar a migração dos arquivos e pastas do site.

Além do SSH propriamente dito, a migração fará uso de dois comandos do Linux, que são o SCP e o TAR, sendo que o primeiro é um comando de cópia que usa o SSH para realizá-la em um ponto remoto e o segundo, é um comando de empacotamento, que significa que podemos criar um pacote de arquivos e sua respectiva estrutura de pastas, resultando em dados que comportam-se como se fossem um arquivo único.

O TAR é especialmente útil no caso, pois usando um parâmetro de compressão, produzirá um único arquivo para transferência, com um tamanho total menor do que o site inteiro tem e toda a estrutura de pastas e arquivos é mantida idêntica ao que se tem na conta a ser migrada.

Dessa forma, ao realizarmos a transferência para o novo servidor e realizarmos a descompactação, temos replicada exatamente o mesmo conteúdo que tínhamos na origem.

Pré-requisitos para migração de site via SSH

As exigências para realizar o procedimento são poucas, mas fundamentais:

  • Conectividade com a Internet;

  • Acesso SSH no servidor de origem;

  • Acesso SSH no servidor de destino.

Passos para migração de site via SSH

Esse é um procedimento cuja ordem dos passos não pode ser alterada, bem como a observância de algumas informações é fundamental para que seja realizado de forma eficiente:

  • Acesse o SSH da conta antiga, cujo site será migrado, usando a porta informada pelo suporte suporte técnico do seu antigo hosting;

  • Por padrão, o acesso é feito à raiz da conta, ou seja, um nível acima da public_html. Copie o comando a seguir, tendo em mente que o site está localizado de acordo com o padrão, ou seja, na public_html. Caso o alvo da compactação esteja em outro diretório, você deve informar o caminho correto:

    tar -czvf site.tar.gz public_html/ && ls -lha .
    • O que o comando acima faz, é compactar (parâmetro -c) o que estiver em public_html/site, usando o fator de compressão do Gzip (parâmetro -z), exibindo cada arquivo que é adicionado (parâmetro -v), atuando sobre os arquivos do alvo, gerando site.tar.gz e ao final exibindo o conteúdo da pasta em que está executando o comando, a fim de que verifique que o arquivo site.tar.gz está nela;

  • Encerre o SSH com o servidor de origem, digitando “exit”, seguido de “enter”;

  • Conecte-se ao SSH da nova conta e que é o destino do backup feito;

  • Mantenha-se na pasta em que o acesso é feito e que por padrão é a raiz da nova conta. Digite o comando a seguir, sendo que:

    • numero_da_porta deve ser substituído pela porta de SSH informada pelo suporte do antigo hosting;

    • usuario_ssh é o usuário para acesso SSH ao antigo hosting e que costuma ser o mesmo do painel de controle;

    • ip_antigo_hosting é o IP do servidor do antigo hosting;

    scp -P número_da_porta usuario_ssh@ip_antigo_hosting:/site.tar.gz .
  • Uma mensagem similar a que se segue, deve ser exibida, sendo que você deve digitar “yes” e presssionar “enter”;

    The authencity of host ‘[192.168.0.1]:22 ([192.168.0.1]:22)’ can’t be established.
    RSA key fingerprint is ef:ae:43:40:46:ba:16:57:4c:58:95:c1:84:22:f5:2a.;
    ???????Are you sure you want to continue connecting (yes/no)? Yes

     

  • Após isso, será solicitado a informar a senha do SSH, a qual o suporte do antigo hosting deve ter lhe fornecido. Digite a senha e pressione “enter”:

    número_da_porta usuario_ssh@ip_antigo_hosting’s password:

     

  • Ao final da transferência, cujo tempo irá variar em função do tamanho do arquivo e da velocidade do link de ambos os servidores, aparecerá algo como:

    site.tar.gz 100% 2876KB 702.4KB/s 00:04
    Onde o segundo, terceiro, quarto e quinto dados exibidos, representam que a transferência atingiu 100%, o tamanho do arquivo transferido em bytes, a taxa de transferência e o tempo decorrido até o fim da transferência, respectivamente.
  • Terminada a transferência, digite o comando a seguir para que seja descompactado todo o conteúdo do site na nova conta;

    tar -xzvf site.tar.gz public_html/

     

Pronto! Seu site (pastas e arquivos) foi transferido para sua nova conta de hospedagem.

Conclusão

A transferência de um site para um novo servidor, mantendo sua estrutura de pastas e arquivos, é um procedimento rápido, simples e seguro que pode ser feito usando o SSH, bastando conectividade com a Internet e que ambas as contas (origem e destino) tenham esse tipo de acesso.