Obsidian backup auf dem Mac per rsync

An verschiedenen Stellen meiner Notizen habe ich schon über die Wichtigkeit von Backups gesprochen. Seit einigen Monaten benutze ich Osidian für meine Texterstellung (alles in Markdown) und da wollte ich sicherstellen, dass die im Vault abgelegten Dateien nicht nur in meiner iCloud liegen, sondern auch mit meinem lokalen Mac und mit meinem Server auf uberspace synchronisiert. Und das möglichst automatisch. Ein Fall für rsync!

Es hat eine Weile gedauert bis ich es hinbekommen habe. Damit ich es später replizieren kann (und du auch), hier ist mein Setup:

  1. Mein Osidian-Vault liegt in der iCloud im Verzeichnis Obsidian/texts. Mir wäre es lieber, wenn ich das nicht in der Cloud hätte, aber ich benutze den Vault auf mehreren Mac-Geräten, ich wollte hier nicht mit GIT arbeiten, wie ich das bisher gemacht hatte.
  2. Das iCloud-Verzeichnis kopiere ich jede Stunde in ein lokales Verzeichnis meines Macbook. Zusätzlich synchronisiere ich den Vault mit einem texts-Verzeichnis auf meinem Server. Somit habe ich verschiedene Backups: in der Cloud, lokal und auf meinem Server (und auf einer Festplatte, wenn ich mal wieder meinen Mac ein Backup verordne.

Hier nun ein Script, das auf meinem Mac im Verzeichnis /user/macbookpro liegt und sync_icloud.sh heißt:

#!/bin/bash

  

# Define the source and target directories

src="/Users/macbookpro/Library/Mobile Documents/iCloud~md~obsidian/Documents/texts/"

local_target="/Users/macbookpro/texts/"

remote_target="dein@server.de: texts/"

  

# Sync the iCloud directory to the local target directory

rsync -avh --delete "$src" "$local_target"

  

# Sync the local target directory to the remote target directory

rsync -avhz -e "ssh" --delete "$local_target" "$remote_target"

Als nächsten muss das Script ausführbar sein:

chmod +x ~/sync_icloud.sh

Für die stündliche Aktualisierung noch den den Crontab anpassen

crontab -e

In den crontab folgendes kopieren (sync jede Stunde)

0 * * * * /Users/macbookpro/sync_icloud.sh

Probiere mal aus, ob das Script manuell funktioniert:

./sync_icloud.sh

Jetzt sollte alles klappen und du hast Backups der Inhalte in Deinem Obsidian-Vault.