Sincronizando arquivos entre dois servidores com rsync via SSH
Oi! Aqui é a Sensei da GeHost 🧑🏫 E hoje eu vou te ensinar uma ferramenta poderosa (mas tranquila, viu?) pra quem precisa copiar ou sincronizar arquivos entre dois servidores: o rsync.
Se você já tentou mover uma pasta cheia de arquivos usando FTP e ficou horas esperando (ou pior, travou no meio), vai amar essa solução. O rsync é rápido, inteligente e, o melhor: se a transferência cair, dá pra continuar de onde parou.
💡 Dica da Sensei: esse guia é pra quem já tem acesso SSH liberado no servidor e uma noção básica de terminal/linha de comando. Se você nunca usou terminal, não se preocupe — fica com a gente e vai dar tudo certo, vamos com calma!
O que é o rsync, afinal?
Pensa no rsync como um "assistente de mudança" muito esperto. Em vez de pegar todos os seus móveis e levar pra casa nova (mesmo os que você já tinha levado antes), ele olha o que já está lá do outro lado e só transporta o que é novo ou mudou. Isso economiza tempo, banda e paciência.
- Copia arquivos e pastas entre dois servidores (ou entre seu computador e um servidor).
- Transfere só as diferenças, não tudo de novo a cada vez.
- Preserva permissões, datas e estrutura de pastas.
- Se a conexão cair no meio, você roda o comando de novo e ele retoma de onde parou.
Pré-requisitos antes de começar
- Acesso SSH habilitado nos dois servidores (origem e destino).
- Usuário e senha (ou chave SSH) de acesso.
- Um terminal — pode ser o terminal do seu computador (Mac/Linux) ou um programa como o PuTTY/WSL no Windows.
💡 Dica da Sensei: se você não sabe se tem acesso SSH liberado no seu plano, dá uma olhadinha no seu painel.gehost.com.br ou chama a gente no suporte que a equipe confirma certinho pra você.
Passo a passo: sincronizando arquivos com rsync
1. Conecte-se ao servidor de origem via SSH
Abra o terminal e conecte no servidor onde estão os arquivos que você quer copiar:
ssh usuario@servidor-origem.com
Troque usuario e servidor-origem.com pelos dados reais da sua conta. Ele vai pedir a senha (ou usar sua chave SSH, se você já tiver configurado uma).
2. Monte o comando básico do rsync
A estrutura mais simples de um comando rsync entre dois servidores é assim:
rsync -avz -e ssh /caminho/da/pasta/origem/ usuario@servidor-destino.com:/caminho/da/pasta/destino/
Vamos entender cada pedacinho, com calma:
- -a (archive): preserva permissões, datas, links e estrutura de pastas — praticamente uma cópia fiel.
- -v (verbose): mostra na tela o que está sendo copiado, pra você acompanhar.
- -z (compress): comprime os dados durante a transferência, deixando mais rápido.
- -e ssh: diz pro rsync usar o protocolo SSH (conexão segura e criptografada).
💡 Dica da Sensei: repara na barra "/" no final da pasta de origem! Ela faz toda a diferença: com a barra, o rsync copia o conteúdo da pasta; sem a barra, ele copia a pasta inteira dentro do destino. Já vi gente se confundir com isso e duplicar caminho sem querer — presta atenção nessa barrinha 😉
3. Exemplo prático
Imagina que você quer sincronizar a pasta public_html do seu site de um servidor pra outro. O comando ficaria mais ou menos assim:
rsync -avz -e ssh /home/usuario/public_html/ usuario@servidor-destino.com:/home/usuario/public_html/
Ao rodar, ele vai pedir a senha do servidor de destino (a não ser que você já tenha uma chave SSH configurada) e começar a mostrar, linha por linha, os arquivos sendo enviados.
4. Fazendo um "teste seco" antes de sincronizar de verdade
Ficou com receio de mexer em arquivos importantes? Ótima cautela! O rsync tem um modo de simulação, que mostra o que seria feito, sem alterar nada de verdade:
rsync -avzn -e ssh /caminho/origem/ usuario@servidor-destino.com:/caminho/destino/
Repara no n extra ali no final das opções (-avzn) — ele significa "dry-run", ou seja, "só me mostra, não faça ainda". Depois de conferir que está tudo certo, é só rodar o comando de novo sem o n.
5. Removendo arquivos que não existem mais na origem (opcional)
Se você quer que o destino fique idêntico à origem — inclusive apagando lá os arquivos que não existem mais aqui — use a opção --delete:
rsync -avz --delete -e ssh /caminho/origem/ usuario@servidor-destino.com:/caminho/destino/
⚠️ Atenção da Sensei: essa opção apaga arquivos no destino que não existirem mais na origem. É poderosa, mas tem que usar com carinho — sempre rode primeiro com -n (o teste seco do passo anterior) pra ver exatamente o que seria apagado antes de confirmar de verdade.
Dicas finais da Sensei 🧘
- Prefira configurar uma chave SSH em vez de digitar senha toda vez — é mais rápido e mais seguro, principalmente se você for automatizar essa sincronização.
- Sempre teste com
-nantes de rodar algo que apaga ou sobrescreve muitos arquivos. - Se o comando parecer não conectar, confirme se o SSH está liberado na sua conta e se você está usando o usuário/caminho corretos.
- Ficou travado em algum passo? Chama a gente no suporte que a equipe te ajuda a revisar o comando com calma.
🌱 Pra fechar: rsync parece assustador de primeira, mas depois que você usa uma vez, vira seu queridinho pra qualquer sincronização de arquivos. Qualquer dúvida, é só chamar — a gente tá aqui pra isso! 💚