Rsync: sincronizando arquivos entre o seu computador e o servidor
Se você já perdeu tempo copiando arquivo por arquivo via FTP, ou teve que reenviar uma pasta inteira só porque mudou um detalhezinho, este guia é pra você. Vamos aprender a usar o rsync, uma ferramenta de linha de comando que sincroniza arquivos de forma inteligente: ele só transfere o que mudou, economizando tempo e banda. Bora com calma, passo a passo. 🧘
O que é o rsync e por que usar
O rsync ("remote sync") é um programa que compara os arquivos de dois lugares — por exemplo, uma pasta no seu computador e uma pasta no servidor — e transfere apenas as diferenças. Isso é bem diferente de um FTP comum, que geralmente reenvia o arquivo inteiro mesmo que só uma linha tenha mudado.
- É mais rápido em atualizações recorrentes (ex.: subir um site depois de pequenas alterações).
- Pode apagar no destino arquivos que não existem mais na origem (mantendo tudo espelhado, se você pedir).
- Funciona de forma segura, transferindo os dados criptografados por SSH.
Dica da Sensei: o rsync é uma ferramenta poderosa — ele pode até apagar arquivos do destino se você usar a opção errada sem perceber. Vá com calma, teste antes de "valer", e sempre tenha um backup à mão (você pode gerar um backup da sua conta pela tela de Backup do cPanel antes de operações grandes).
Pré-requisitos
- Acesso SSH liberado na sua hospedagem. Nem todo plano vem com isso habilitado por padrão — se você não sabe se tem, fale com o nosso suporte pelo painel.gehost.com.br e peça a liberação/confirmação do acesso SSH para o seu usuário.
- rsync instalado no seu computador.
- Linux: geralmente já vem instalado. Se não,
sudo apt install rsync(Debian/Ubuntu) ou equivalente da sua distro. - macOS: também costuma vir instalado. Se precisar, dá pra instalar via Homebrew:
brew install rsync. - Windows: o jeito mais tranquilo é usar o WSL (Subsistema Linux do Windows) ou um terminal como o Git Bash, que trazem o rsync junto.
- Linux: geralmente já vem instalado. Se não,
- Seu usuário e domínio de acesso. Use o seu usuário do cPanel e o seu domínio (ex.:
seuusuario@seudominio.com.br) — esses dados você encontra no e-mail de boas-vindas ou no painel do cliente. Nunca é preciso usar um endereço de IP: o domínio já resolve certinho.
Passo a passo: sincronizando arquivos
1. Teste a conexão SSH primeiro
Antes de sincronizar qualquer coisa, confirme que a conexão SSH está funcionando. Abra o terminal e digite:
ssh seuusuario@seudominio.com.br
Se pedir a senha (ou a chave, caso você já tenha configurado uma) e você conseguir entrar, ótimo — está tudo pronto para o próximo passo. Digite exit para sair.
2. Enviando arquivos do seu computador para o servidor
O comando básico para enviar (upload) uma pasta local para o servidor é:
rsync -avz --progress ./minha-pasta-local/ seuusuario@seudominio.com.br:~/public_html/
Vamos entender cada parte:
- -a (archive): preserva permissões, datas e estrutura de pastas — o modo "seguro e completo" de copiar.
- -v (verbose): mostra na tela o que está sendo transferido.
- -z (compress): comprime os dados durante a transferência, deixando mais rápido.
- --progress: mostra a barra de progresso de cada arquivo.
- A barra "/" no final da pasta de origem é importante: ela diz "copie o conteúdo desta pasta", e não a pasta em si. Preste atenção nisso — é o erro mais comum!
3. Baixando arquivos do servidor para o seu computador
É só inverter a ordem: origem no servidor, destino local.
rsync -avz --progress seuusuario@seudominio.com.br:~/public_html/ ./minha-pasta-local/
Assim você traz uma cópia atualizada do site (ou de uma pasta específica) para o seu computador — ótimo para backups locais antes de mexer em algo delicado.
Testando antes de valer: o modo "simulação"
Essa é a dica mais importante deste guia. Antes de rodar uma sincronização "de verdade" — principalmente se for usar a opção de apagar arquivos —, use o --dry-run, que simula a operação e mostra o que seria feito, sem alterar nada:
rsync -avz --dry-run ./minha-pasta-local/ seuusuario@seudominio.com.br:~/public_html/
Olhe a lista que aparece. Se estiver tudo como esperado, é só rodar o mesmo comando sem o --dry-run.
Dica da Sensei: crie o hábito de sempre rodar com--dry-runprimeiro quando a pasta envolvida for importante (como opublic_htmlde um site em produção). Um minuto de simulação evita uma dor de cabeça de horas.
Mantendo pastas espelhadas (cuidado aqui!)
Se você quer que o destino fique idêntico à origem — ou seja, arquivos que não existem mais na origem sejam apagados também no destino — use a opção --delete:
rsync -avz --delete --dry-run ./minha-pasta-local/ seuusuario@seudominio.com.br:~/public_html/
Repare que colocamos o --dry-run junto: nunca use --delete pela primeira vez sem simular antes. Essa opção apaga de verdade o que estiver "sobrando" no destino, então só use quando tiver certeza do que está fazendo — e com um backup recente guardado.
Ignorando arquivos que você não quer sincronizar
Muita gente não quer subir pastas como node_modules, .git ou arquivos temporários. Dá pra excluir com --exclude:
rsync -avz --exclude 'node_modules' --exclude '.git' ./meu-projeto/ seuusuario@seudominio.com.br:~/public_html/
Você pode repetir --exclude quantas vezes precisar, uma para cada pasta ou padrão de arquivo.
Resumo dos comandos essenciais
| O que você quer fazer | Comando |
|---|---|
| Testar antes de aplicar | --dry-run |
| Enviar arquivos (upload) | rsync -avz origem/ usuario@dominio:destino/ |
| Baixar arquivos (download) | rsync -avz usuario@dominio:origem/ destino/ |
| Espelhar (apaga o que sobrar) | --delete (sempre com --dry-run antes!) |
| Ignorar pastas/arquivos | --exclude 'nome' |
Problemas comuns
- "Permission denied" ou "command not found: rsync": confirme com o nosso suporte se o SSH está liberado para o seu usuário e se o rsync está disponível no servidor.
- A senha não é aceita: verifique se você está digitando o usuário certo (o mesmo do cPanel) e o domínio correto. Se tiver dúvida sobre suas credenciais, consulte o painel do cliente ou fale com o suporte.
- A transferência parece copiar tudo de novo sempre: confira se as datas de modificação dos arquivos locais não estão sendo alteradas por outro programa (alguns editores "tocam" o arquivo mesmo sem mudar o conteúdo).
- Ficou lento: em conexões mais fracas, a opção
-z(compressão) ajuda bastante — confirme que ela está no comando.
Dica final da Sensei: comece sempre testando em uma pasta de teste, não direto nopublic_htmlde um site que está no ar. Depois que pegar confiança com o--dry-run, você vai ver como o rsync se torna um dos seus melhores amigos no dia a dia. Qualquer dúvida, nosso suporte está por aqui — é só chamar pelo painel. 🙏