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
- “scp” noma da função
- Nome do arquivo compactado
- Usuário do FTP para onde quer enviar o arquivo
- @
- Host FTP para onde será enviado o arquivo
- Dois pontos
- 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.