diff --git a/macos/.DS_Store b/macos/.DS_Store new file mode 100644 index 0000000..0f63d1d Binary files /dev/null and b/macos/.DS_Store differ diff --git a/macos/Backup-Recordings/.DS_Store b/macos/Backup-Recordings/.DS_Store new file mode 100644 index 0000000..9836cdf Binary files /dev/null and b/macos/Backup-Recordings/.DS_Store differ diff --git a/macos/Backup-Recordings/Library/.DS_Store b/macos/Backup-Recordings/Library/.DS_Store new file mode 100644 index 0000000..ed6ee2f Binary files /dev/null and b/macos/Backup-Recordings/Library/.DS_Store differ diff --git a/macos/Backup-Recordings/Library/LaunchAgents/com.backup-recordings-to-bfds.plist b/macos/Backup-Recordings/Library/LaunchAgents/com.backup-recordings-to-bfds.plist new file mode 100644 index 0000000..057910d --- /dev/null +++ b/macos/Backup-Recordings/Library/LaunchAgents/com.backup-recordings-to-bfds.plist @@ -0,0 +1,30 @@ + + + + + Label + com.backup-recordings-to-bfds + + ProgramArguments + + /bin/bash + /Users/rob/code/lokale-scripte/macos/Backup-Recordings/backup-recordings-to-bfds.sh + + + StartCalendarInterval + + Hour + 12 + Minute + 0 + + + StandardOutPath + /Users/rob/code/lokale-scripte/macos/Backup-Recordings/run-backup-recordings_output.log + StandardErrorPath + /Users/rob/code/lokale-scripte/macos/Backup-Recordings/run-backup-recordings_error.log + + RunAtLoad + + + diff --git a/macos/Backup-Recordings/backup-recordings-to-bfds.sh b/macos/Backup-Recordings/backup-recordings-to-bfds.sh new file mode 100755 index 0000000..d0d107f --- /dev/null +++ b/macos/Backup-Recordings/backup-recordings-to-bfds.sh @@ -0,0 +1,40 @@ +#!/bin/bash + +# Quelle und Ziel definieren +SOURCE="/Users/rob/Recordings/Work/" +TARGET="/Volumes/rob/recordings/Progress/Work/" +MOUNT_POINT="/Volumes/rob" +SERVER_ADDRESS="smb://bfds/rob" + +# Prüfen, ob das Netzlaufwerk gemountet ist +if mount | grep -q "$MOUNT_POINT"; then + echo "Netzlaufwerk ist gemountet. Backup startet..." +else + echo "Netzlaufwerk nicht gefunden. Versuche zu mounten..." + osascript -e "mount volume \"$SERVER_ADDRESS\"" + + # Nach dem Mounten erneut prüfen + if mount | grep -q "$MOUNT_POINT"; then + echo "Netzlaufwerk erfolgreich gemountet." + else + echo "Fehler: Netzlaufwerk konnte nicht gemountet werden." + osascript -e 'display notification "Backup fehlgeschlagen! Netzlaufwerk nicht erreichbar." with title "Backup Script"' + exit 1 + fi +fi + +# Sicherung starten +rsync -v -r -l -t -D "$SOURCE" "$TARGET" + +# -r → Rekursiv kopieren (alle Unterordner & Dateien) +# -l → Symbolische Links kopieren +# -t → Zeitstempel beibehalten +# -D → Geräte- und Sonderdateien kopiere + +# Erfolgsmeldung ausgeben +echo "Backup abgeschlossen: $DATE" + +# Optional: Notification für macOS anzeigen +osascript -e 'display notification "Backup abgeschlossen!" with title "Backup Script"' + + diff --git a/macos/README.md b/macos/README.md new file mode 100644 index 0000000..dece482 --- /dev/null +++ b/macos/README.md @@ -0,0 +1,13 @@ +Die *.plist datei definiert wann immer das cript startet (12Uhr täglich) + +Die Befehle um das script in LaunchAgents einzufügen: + +# Im Terminal benutzen + +- wenn $(id -u) fehler wirft den aktuellen user id manuell eingeben. sollte 501 sein +- bootout löscht erstmal das alte zeug und bootstrap fügt es neu hinzu. + +``` +launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.backup-recordings-to-bfds.plist +launchctl bootstrap gui/$(id -u) ~/Library/LaunchAgents/com.backup-recordings-to-bfds.plist +``` \ No newline at end of file