MoneyMoney auf mehreren Macs: Sicherer iCloud-Sync

Du nutzt MoneyMoney für deine Finanzen, arbeitest aber an mehr als einem Mac? Hier ist die Lösung für einen automatisierten, sicheren iCloud-Sync mit Multi-Mac-Locking.

Ein Vorwort von Dr. Andreas Prinz

Willkommen auf eberhardprinz.de. Ich habe mich dazu entschlossen, diese Seite meines verstorbenen Vaters zu reaktivieren. Es ist mir ein Herzensanliegen, sein Werk zu bewahren und seine kompletten Bilder und Texte hier nach und nach wieder zu veröffentlichen. Zudem werde ich hier hin und wieder technische Tipps teilen, die das digitale Leben einfacher machen.

Das Problem: SQLite & Cloud

SQLite-Datenbanken (wie die von MoneyMoney) dürfen niemals von zwei Geräten gleichzeitig beschrieben werden. Mein System nutzt ein „Lock-File“ in der iCloud, um dies zu verhindern.

MoneyMoney Sync Terminal
Abbildung 1: Sync-Status im Terminal

Schritt 1: Ordner anlegen

mkdir -p ~/bin
mkdir -p ~/Backups/MoneyMoney

Schritt 2: Das Sync-Script

Erstelle ~/bin/sync-moneymoney.zsh und mache es mit chmod +x ausführbar:

#!/bin/zsh
# MoneyMoney Cloud-Sync & Safety Script
# Autor: Dr. Andreas Prinz (www.eberhardprinz.de)

USER_NAME=$(whoami)
MY_HOSTNAME=$(hostname -s)
LOCAL_DB="/Users/$USER_NAME/Library/Containers/com.moneymoney-app.retail/Data/Library/Application Support/MoneyMoney/Database"
CLOUD_DB="/Users/$USER_NAME/Library/Mobile Documents/com~apple~CloudDocs/moneymoney/Database"
BACKUP_DIR="/Users/$USER_NAME/Backups/MoneyMoney"
LOGFILE="/Users/$USER_NAME/Library/Logs/MoneyMoneySync.log"

MY_LOCK="$CLOUD_DB/.running_on_$MY_HOSTNAME"
mkdir -p "$(dirname "$LOGFILE")"
exec >> "$LOGFILE" 2>&1

# 1. PRÜFEN: Läuft MoneyMoney LOKAL?
if pgrep -x "MoneyMoney" > /dev/null; then
    touch "$MY_LOCK"
    OTHER_LOCKS=$(ls "$CLOUD_DB"/.running_on_* 2>/dev/null | grep -v "$MY_HOSTNAME")
    if [[ -n "$OTHER_LOCKS" ]]; then
        OTHER_MAC=$(echo "$OTHER_LOCKS" | sed "s/.*\.running_on_//")
        osascript -e "display notification \"⚠️ MoneyMoney auch auf $OTHER_MAC offen!\" with title \"Sync Warnung\""
    fi
    exit 0
else
    [ -f "$MY_LOCK" ] && rm "$MY_LOCK"
fi

# 2. PRÜFEN: Läuft App auf anderem Mac?
OTHER_LOCKS=$(ls "$CLOUD_DB"/.running_on_* 2>/dev/null | grep -v "$MY_HOSTNAME")
[[ -n "$OTHER_LOCKS" ]] && exit 0

# 3. BACKUP & SYNC
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
tar -czf "$BACKUP_DIR/MoneyMoney_FullBackup_$TIMESTAMP.tar.gz" -C "$LOCAL_DB" .
find "$BACKUP_DIR" -name "*.tar.gz" -mtime +14 -delete

RSYNC_OPTS="-avzU --info=progress2 --stats --delete --exclude='.DS_Store' --exclude='*Backup*'"
/usr/bin/rsync ${=RSYNC_OPTS} "$CLOUD_DB/" "$LOCAL_DB/"
/usr/bin/rsync ${=RSYNC_OPTS} "$LOCAL_DB/" "$CLOUD_DB/"

Schritt 3: LaunchAgent (Automatik)

<?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>de.eberhardprinz.MoneyMoneySync</string>
    <key>ProgramArguments</key>
    <array>
        <string>/bin/zsh</string>
        <string>-c</string>
        <string>$HOME/bin/sync-moneymoney.zsh</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>WatchPaths</key>
    <array>
        <string>/Users/DEIN_NUTZER/Library/Containers/com.moneymoney-app.retail/Data/Library/Application Support/MoneyMoney/Database</string>
        <string>/Users/DEIN_NUTZER/Library/Mobile Documents/com~apple~CloudDocs/moneymoney/Database</string>
    </array>
</dict>
</plist>
MoneyMoney Warnung
Abbildung 2: Multi-Mac Sperre bei Parallel-Zugriff

Fazit

Dieses System schützt deine Daten und ermöglicht nahtloses Arbeiten auf dem MacBook Air M4 und dem iMac.

  • MoneyMoney auf mehreren Macs: Sicherer iCloud-Sync

    Du nutzt MoneyMoney für deine Finanzen, arbeitest aber an mehr als einem Mac? Hier ist die Lösung für einen automatisierten, sicheren iCloud-Sync mit Multi-Mac-Locking. Ein Vorwort von Dr. Andreas Prinz Willkommen auf eberhardprinz.de. Ich habe mich dazu entschlossen, diese Seite meines verstorbenen Vaters zu reaktivieren. Es ist mir ein Herzensanliegen, sein Werk zu bewahren und…

  • Färbepflanzen: Pflanzenfarben mit Liguster

    Färbepflanzen: Pflanzenfarben mit Liguster

    Entdecken Sie die Welt der Färbepflanzen und lernen Sie, wie Sie mit Ligusterbeeren Materialien blau färben können.

  • Baumwoll-Stoff mit Naturfarben färben

    Baumwoll-Stoff mit Naturfarben färben

    Färben von Baumwolle mit Pflanzenfarben – Eine umfassende Anleitung für die Färbung von Baumwollstoffen mit Naturfarben.

Schreibe einen Kommentar