S3 compatível no VPS: backup com rclone passo a passo

Ilustração técnica sobre S3 compatível no VPS: backup com rclone passo a passo
Ilustração sobre S3 compatível no VPS: backup com rclone passo a passo

Resposta Rápida / TL;DR

Crie um remote S3 com credenciais fora do código, faça um primeiro sync para um prefixo de teste e valide listagem, checksum e restauração antes de automatizar.
Índice do artigo

    Resposta rápida

    Use o rclone para copiar arquivos do VPS para um bucket S3 compatível, mas trate a restauração como parte obrigatória do processo. Credenciais devem ficar no arquivo de configuração protegido ou em um secret manager, nunca em scripts versionados.

    O que precisa estar definido

    Antes de instalar, registre endpoint, região, bucket, prefixo, política de acesso e retenção. Um backup deve ter destino separado, permissão mínima e uma periodicidade que atenda ao objetivo de recuperação. S3 compatível não significa que todos os recursos de cada provedor sejam idênticos.

    Configure um remote

    Instale o rclone pelo método oficial da sua distribuição ou pelo site do projeto. Depois:

    rclone config
    

    Escolha s3, informe o endpoint e responda à opção de região conforme a documentação do storage. Evite colar a chave em comandos que ficam no histórico do shell. O arquivo ~/.config/rclone/rclone.conf deve ter permissões restritas:

    chmod 600 ~/.config/rclone/rclone.conf
    

    Faça um primeiro teste pequeno

    mkdir -p /tmp/backup-demo
    printf 'teste de restauracao\n' > /tmp/backup-demo/prova.txt
    rclone copy /tmp/backup-demo remote:bucket-yousecure/teste/ --progress
    rclone ls remote:bucket-yousecure/teste/
    

    Não use o bucket inteiro no primeiro comando. Confirme se a conta tem somente as permissões necessárias e se o prefixo está correto.

    Copie com logs

    Exemplo de rotina:

    rclone copy /srv/dados remote:bucket-yousecure/servidor-01/ \
      --log-file=/var/log/rclone-backup.log \
      --log-level=INFO \
      --retries=3
    

    copy não apaga arquivos que já existem no destino. sync pode remover no destino o que não existe na origem; use-o somente com retenção, prefixos e revisão bem definidos.

    Restaure antes de confiar

    mkdir -p /tmp/restore-test
    rclone copy remote:bucket-yousecure/teste/ /tmp/restore-test/
    cmp /tmp/backup-demo/prova.txt /tmp/restore-test/prova.txt
    

    Para banco de dados, copie dumps consistentes em vez de arquivos de dados enquanto o processo está escrevendo. Criptografe informações sensíveis antes do upload quando a política de segurança exigir.

    Automatização responsável

    Use systemd timer ou cron com ambiente controlado, lock para evitar duas execuções simultâneas e alerta quando o comando falhar. Registre data, volume copiado e resultado. O bucket deve ter versionamento ou retenção quando disponível, porque um arquivo apagado ou criptografado por ransomware também pode ser sincronizado.

    Uma VPS com disco e rede adequados ajuda a terminar a janela de backup, mas não substitui a validação da restauração. Veja as opções de VPS.

    FAQ

    rclone copy verifica integridade?

    Ele pode comparar metadados e checksums suportados pelo backend. Valide a capacidade do seu provedor e faça restaurações reais.

    Posso deixar uma chave S3 com acesso total?

    Não é recomendado. Crie uma credencial restrita ao bucket/prefixo e rotacione-a.

    Checklist de restauração

    • [ ] Remote configurado sem segredo no Git ou no histórico.
    • [ ] Upload de amostra concluído.
    • [ ] Listagem e checksum foram conferidos.
    • [ ] Restauração ocorreu em diretório separado.
    • [ ] Retenção e alerta de falha estão documentados.

    Antes de escolher entre copy e sync, escreva o que deve acontecer com arquivos apagados na origem. A diferença é operacionalmente importante: uma sincronização destrutiva pode reproduzir uma exclusão acidental no destino.

    Download Gratuito Template Pronto para n8n & Evolution API

    📦 Template n8n: Agente de IA com WhatsApp + Evolution API

    Baixe o arquivo JSON pronto para importar: Webhook configurado, tratamento de remetente, nó de OpenAI e disparo via Evolution API.

    Comentários (8)

    Patrícia Rodrigues

    Tutorial completo de hardening! O setup de UFW com Fail2ban e autenticação por chaves SSH bloqueou centenas de tentativas de invasão.

    Lucas Lima

    Implementei o isolamento de rede dos containers e as políticas de firewall conforme o artigo. Infraestrutura muito mais robusta agora.

    Mateus Costa

    Configurar alertas automáticos para tentativas anômalas de login via Telegram/Discord salvou nosso plantão esse fim de semana. Em qual parte do artigo você recomenda focar para quem está começando em produção?

    João Vieira

    A explicação sobre cabeçalhos de segurança (CSP, HSTS, X-Frame-Options) foi essencial para obtermos nota A+ no SecurityHeaders.

    Pedro Souza - Startup X

    Excelente conteúdo! Aprendi conceitos que não encontrava em outros lugares em português.

    Fernando Gomes

    Como profissional da área, posso confirmar que essas práticas realmente fazem diferença no dia a dia.

    Camila Oliveira

    Artigo muito bem escrito e explicativo! Já compartilhei com toda a equipe da empresa. Em qual parte do artigo você recomenda começar para quem é iniciante?

    Fernando Lima

    Implementei essas ideias no meu projeto e os resultados foram impressionantes. Obrigado pelo conhecimento compartilhado! Você tem algum material mais avançado sobre esse tema?

    ← Voltar para o blog