shellobsidiansync

Vault Sync — Sincronização com a Nuvem

Sincroniza o Obsidian Vault com o provedor de nuvem registrado em .claude/cloud-config.md.

Fluxo principal

Sempre execute os passos nesta ordem:

  1. Detectar nuvem configurada
  2. Verificar existência do vault na nuvem
  3. Se existir → comparar arquivos
  4. Se não existir → fazer upload inicial
  5. Verificação final

1. Detectar nuvem configurada

Passo 1a — Ler o arquivo de configuração

Leia o arquivo:

/Users/sergioluiz/Documents/Obsidian Vault/.claude/cloud-config.md

Extraia os campos:

  • remote — nome do remote rclone (ex: gdrive, dropbox)
  • cloud — nome legível (ex: Google Drive, Dropbox)
  • vault_folder — nome da pasta no destino (ex: Obsidian Vault)

Se o arquivo existir e remote estiver preenchido, continue com esses valores.

Passo 1b — Fallback: detectar via rclone

Se .claude/cloud-config.md não existir ou remote estiver vazio:

rclone listremotes
  • Se houver apenas um remote, use-o automaticamente e informe o usuário.
  • Se houver múltiplos remotes, liste-os e peça ao usuário para escolher qual usar.
  • Se não houver nenhum remote, informe o usuário e indique que ele deve executar a skill cloud-login primeiro.

Se a nuvem foi detectada via fallback, crie ou atualize .claude/cloud-config.md com os valores detectados após confirmar com o usuário.


2. Verificar existência do vault na nuvem

Com o remote e vault_folder definidos, verifique se a pasta do vault já existe na nuvem:

rclone lsd <remote>: --max-depth 1 2>&1 | grep "<vault_folder>"

Exemplo com Google Drive:

rclone lsd gdrive: --max-depth 1 2>&1 | grep "Obsidian Vault"
  • Se a saída contiver o nome da pasta → passe para o passo 3a (comparar)
  • Se a saída estiver vazia → passe para o passo 3b (upload inicial)

3a. Comparar arquivos

Execute um check para ver diferenças entre o local e a nuvem:

rclone check "/Users/sergioluiz/Documents/Obsidian Vault" "<remote>:<vault_folder>" \
  --exclude ".obsidian/**" \
  --exclude ".trash/**" \
  2>&1

O rclone check mostra:

  • Arquivos que existem apenas localmente
  • Arquivos que existem apenas na nuvem
  • Arquivos com conteúdo diferente

Para ver um resumo de quais arquivos seriam atualizados (sem efetuar nada):

rclone sync "/Users/sergioluiz/Documents/Obsidian Vault" "<remote>:<vault_folder>" \
  --exclude ".obsidian/**" \
  --exclude ".trash/**" \
  --dry-run \
  --verbose \
  2>&1

Apresente o relatório ao usuário e pergunte se deseja aplicar a sincronização.

Se confirmar, execute sem --dry-run:

rclone sync "/Users/sergioluiz/Documents/Obsidian Vault" "<remote>:<vault_folder>" \
  --exclude ".obsidian/**" \
  --exclude ".trash/**" \
  --verbose \
  2>&1

Atenção: rclone sync torna o destino idêntico à origem. Arquivos que existem apenas na nuvem serão apagados. Se quiser preservar ambos os lados, use rclone copy em vez de rclone sync.


3b. Upload inicial

A pasta não existe na nuvem. Faça o upload completo:

rclone copy "/Users/sergioluiz/Documents/Obsidian Vault" "<remote>:<vault_folder>" \
  --exclude ".obsidian/**" \
  --exclude ".trash/**" \
  --exclude ".claude/**" \
  --progress \
  2>&1

rclone copy envia apenas os arquivos que ainda não existem no destino, sem apagar nada.


4. Verificação final

Após qualquer operação, confirme o estado do vault na nuvem:

rclone ls "<remote>:<vault_folder>" --max-depth 1 2>&1

Isso lista os arquivos e pastas de primeiro nível no destino para confirmar que o upload/sync foi concluído com sucesso.


Arquivos excluídos por padrão

Estes padrões são sempre ignorados:

PadrãoMotivo
.obsidian/**Configurações locais do app Obsidian
.trash/**Lixeira interna do vault

Para adicionar outros padrões de exclusão, use --exclude "padrão" extra nos comandos.


Referência rápida dos comandos por nuvem

NuvemRemote padrãoExemplo de destino
Google Drivegdrivegdrive:Obsidian Vault
Dropboxdropboxdropbox:Obsidian Vault
OneDriveonedriveonedrive:Obsidian Vault
Amazon S3 / Backblazes3s3:meu-bucket/Obsidian Vault