Temos aqui na agência frequentemente a necessidade de enviar sites inteiros de um servidor para outro (de uma Hospedagem para outra), normalmente em migrações. Faço um arquivo compactado (*.zip) faço download, faço upload no servidor novo e descompacto.
O processo de compactação e descompactação já fazia via SSH, mas ainda sim demorava pois tinha que fazer download e upload utilizando minha banda para isso. Em uma conversa com um atendente de suporte da Locaweb, peguei esse script em SSH para realizar a transferência diretamente de um servidor para outro, acelerando assim a transferência que agora não depende mais da velocidade da minha internet.
Como nunca escrevi sobre SSH, então vou mostrar como compactar todos os arquivos, depois transferir o arquivo compactado e por último como descompactar.

Como compactar arquivos usando SSH

Faço isso usando um MacBook (ainda não encontrei uma maneira de fazer isso no Windows) então abro o Terminal e digito:

ssh usuario@ftp.dominio.com.br

Em seguida o sistema vai te solicitar a senha de acesso ao FTP, é só digitar e dar um Enter. Feito isso você estará dentro da raiz do seu FTP, então usando comandos do antigo “DOS” você consegue navegar pelas pastas:

cd nome_da_pasta

Para entrar em uma pasta.

cd..

Para subir um nível na pasta.

dir

Mostra todos os arquivos/pastas da pasta onde você está.
Dito isso, você vai digitar o seguinte para compactar:

zip -r nome-do-arquivo-novo.zip nome-da-pasta nome-do-arquivo.html

“nome-do-arquivo-novo.zip” será o nome do seu arquivo compactado, e depois disso você digita o nome dos arquivos (separado por espaço) ou pastas que irão ser incluídos nesse *.zip.
Feito isso é só dar Enter e ele vai começar a compactar tudo.

Como transferir um arquivo de um servidor para outro com SSH (de uma hospedagem para outra)

Estando já dentro da pasta onde o arquivo compactado se encontra, digite o seguinte

scp nome-do-arquivo-novo.zip usuario2@ftp.dominio2.com.br:/home/usuario/public_html
  1. “scp” noma da função
  2. Nome do arquivo compactado
  3. Usuário do FTP para onde quer enviar o arquivo
  4. @
  5. Host FTP para onde será enviado o arquivo
  6. Dois pontos
  7. Caminho absoluto da pasta onde será colocado o arquivo.

Esse caminho normalmente você encontra no seu FileZila (ou software similar de FTP), ou ainda acessando a hospedagem via SSH e digitando:

pwd

Feito isso ele vai solicitar a sua senha e vai iniciar a transferência.

Como descompactar arquivos com SSH

Agora é fácil, acesse sua hospedagem via SSH, vá até a pasta onde o arquivo se encontra e digite:

unzip nome-do-arquivo.zip pasta/pasta

“pasta/pasta” é para que você extraia os arquivos em uma pasta diferente daquela onde o arquivo se encontra.