MacOS

25 ago, 2025

Automatizando Backups do Obsidian no macOS usando Git e Launchd

Publicidade

O Obsidian é uma ferramenta poderosa para gerenciamento de notas, e manter um backup automatizado é essencial para a segurança dos seus dados. Neste post, vou mostrar como configurar um backup automático do seu vault do Obsidian usando Git no macOS, com execução programada duas vezes ao dia.

Pré-requisitos

  • macOS
  • Git instalado
  • Repositório Git configurado (GitHub, GitLab, etc.)
  • Conhecimento básico de terminal
  • Obsidian instalado com um vault configurado

1. Criando o Script de Backup

Primeiro, vamos criar um script que realizará o backup. Crie um arquivo chamado cronObsidian.sh no diretório de sua preferência aqui vou utilizar o seguinte ~/git:

#!/bin/zsh
echo "Atualizando repositório Obsidian..."
d=$(date +'%a %b %e %H:%M:%S %Z %Y')
msg="UpdateAt: ""$d"
cd ~/git/obsidianVault
git add .
git commit -m "$msg"
git push origin main

Depois, torne o script executável:

chmod +x ~/git/cronObsidian.sh

2. Configurando o Git

Para que o script funcione corretamente, configure seu nome de usuário e email no Git:

git config --global user.name "Seu Nome"
git config --global user.email "seu.email@exemplo.com"

3. Configurando a Tarefa Agendada com Launchd

No macOS, usamos o launchd em vez do cron tradicional. Crie um arquivo plist em ~/Library/LaunchAgents/com.user.cronobsidian.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "<http://www.apple.com/DTDs/PropertyList-1.0.dtd>">
<plist version="1.0">
  <dict>
    <key>Label</key>
    <string>com.user.cronobsidian</string>
    <key>ProgramArguments</key>
    <array>
      <string>/Users/SeuUsuario/git/cronObsidian.sh</string>
    </array>
    <key>StartCalendarInterval</key>
    <array>
      <dict>
        <key>Hour</key>
        <integer>12</integer>
        <key>Minute</key>
        <integer>0</integer>
      </dict>
      <dict>
        <key>Hour</key>
        <integer>18</integer>
        <key>Minute</key>
        <integer>0</integer>
      </dict>
    </array>
    <key>StandardOutPath</key>
    <string>/Users/SeuUsuario/Library/Logs/cronobsidian.log</string>
    <key>StandardErrorPath</key>
    <string>/Users/SeuUsuario/Library/Logs/cronobsidian.error.log</string>
    <key>RunAtLoad</key>
    <true/>
  </dict>
</plist>

4. Ativando a Tarefa Agendada

Carregue a tarefa no launchd:

launchctl load ~/Library/LaunchAgents/com.user.cronobsidian.plist

Verifique se está funcionando:

launchctl list | grep cronobsidian

5. Verificando o Funcionamento

O script agora executará automaticamente:

  • Às 12:00 (meio-dia)
  • Às 18:00 (6 da tarde)

Os logs serão gravados em:

  • ~/Library/Logs/cronobsidian.log (saída padrão)
  • ~/Library/Logs/cronobsidian.error.log (erros)

Dicas de Solução de Problemas

  1. Verifique as permissões do script (deve ser executável)
  1. Confirme se os caminhos no arquivo plist estão corretos
  1. Verifique os arquivos de log para identificar possíveis erros
  1. Certifique-se de que o Git está configurado corretamente

Conclusão

Com essa configuração, seu vault do Obsidian será automaticamente versionado e backup-ado duas vezes ao dia. Isso garante que suas notas estejam sempre seguras e sincronizadas com seu repositório remoto.

Referências