☁️ CopyToGDriver — Sincronização Inteligente e Segura com Google Drive

Versão: 0.3.1
Autor: Paulo SSPacheco + ChatGPT (GPT-5)
Data: 31/10/2025


🧭 Visão Geral

O CopyToGDriver é um sistema modular de sincronização inteligente entre pastas locais e o Google Drive, utilizando o Rclone.
Seu diferencial é a segurança contra perda de dados, graças ao mecanismo automático de restauração de backups e abortamento preventivo em situações de risco.


🧩 Arquitetura Modular

O sistema é composto por três módulos principais:

Módulo Versão Função
CopyToGDriver_CopyCurrent.sh 0.3.1 Orquestrador — controla todo o ciclo de sincronização
CopyToGDriver_ConfigFunctions.sh 0.0.22 Parser e gerenciamento dinâmico de parâmetros
CopyToGDriver_Restore.sh 0.0.3 Restauração automática e segura do backup mais recente

⚙️ Estrutura de Pastas no Google Drive

gdriver:
├── rclone/              ← Pasta principal de sincronização
│   └── MeuProjeto/
│       └── (arquivos ativos)
└── rclone.deleted/      ← Pasta de backups automáticos
    └── MeuProjeto/
        ├── 2025-10-30/
        └── 2025-10-31/

🚀 Fluxo de Execução

1️⃣ Início — O script CopyToGDriver_CopyCurrent.sh é executado.
2️⃣ Simulação — O sistema faz um dry-run (sem alterações reais).
3️⃣ Detecção — Se a pasta local estiver “efetivamente vazia” (apenas scripts), aciona o módulo de restauração.
4️⃣ Restauração — O backup mais recente é recuperado automaticamente de rclone.deleted.
5️⃣ Abortamento — A sincronização é interrompida para evitar sobrescrita.
6️⃣ Revisão — O usuário verifica os arquivos restaurados.
7️⃣ Sincronização real — Após confirmação, o processo é relançado com segurança.


🧱 Estrutura Local do Sistema

CopyToGDriver/
├── CopyToGDriver.sh                ← Script principal
├── CopyToGDriver_CopyCurrent.sh    ← Orquestrador (execução corrente)
├── CopyToGDriver_ConfigFunctions.sh← Configuração e parsing
├── CopyToGDriver_Restore.sh        ← Restauração automática
├── CopyToGDriver_Utils.sh          ← Funções utilitárias
└── .rclone-sync/
    └── logs/
        ├── sync-<pasta>-<data>.log
        ├── restore-<pasta>-<data>.log
        └── ...

🔒 Mecanismos de Proteção

Situação Ação Automática
Pasta local vazia ou apenas scripts Inicia restauração do backup mais recente
Falha de restauração Aborta sincronização imediatamente
Restauração concluída Cria marcador .restore_aborted e encerra
Script principal ausente Exibe aviso e cancela execução
Execução em modo teste Nenhuma modificação feita (--dry-run)

🧠 Filosofia do Design

“Falhar em restaurar é aceitável.
Sincronizar uma pasta vazia e apagar o backup, nunca.”

O sistema prioriza integridade e segurança dos dados acima da performance, garantindo que nenhuma sincronização destrutiva ocorra sem validação.


📜 Logs Unificados

Todos os logs ficam centralizados em:

~/.rclone-sync/logs/

⚡ Comandos de Uso

🔹 Sincronizar pasta atual (modo interativo)

./CopyToGDriver_CopyCurrent.sh

🔹 Sincronizar automaticamente (sem confirmação)

./CopyToGDriver_CopyCurrent.sh --auto

🔹 Restaurar manualmente backup mais recente

./CopyToGDriver_Restore.sh --remote-folder MeuProjeto

🔹 Ver ajuda detalhada

./CopyToGDriver_Restore.sh --help

🧩 Variáveis Padrão

Variável Valor Descrição
REMOTE_NAME gdriver Remote configurado no Rclone
BASE_REMOTE_FOLDER rclone Pasta base principal no Google Drive
DELETED_BASE_FOLDER rclone.deleted Pasta de backups automáticos
LOG_DIR ~/.rclone-sync/logs Diretório dos logs
SCRIPT_NAME /home/paulosspacheco/scripts/CopyToGDriver/CopyToGDriver.sh Script principal

✅ Recursos Implementados

✔️ Simulação automática antes da sincronização
✔️ Detecção de pastas “vazias de conteúdo”
✔️ Restauração automatizada com logs
✔️ Abortamento preventivo após restore
✔️ Compatibilidade total com Rclone
✔️ Arquitetura modular e expansível
✔️ Segurança de dados em primeiro lugar


🧩 Dependências


🧪 Testado em

Sistema Status
Ubuntu 22.04 LTS ✅ Aprovado
Debian 12 ✅ Aprovado
WSL2 (Ubuntu) ✅ Aprovado

📦 Planejado para Futuras Versões


👨‍💻 Autor

Paulo SSPacheco
Desenvolvido em colaboração com ChatGPT (GPT-5)

“Automação é útil. Segurança é essencial.”


📄 Licença

Este projeto é de uso pessoal e educacional.
Distribuição ou modificação permitida mediante atribuição de crédito ao autor original.