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/Backup-Recordings/run-backup-recordings_error.log b/macos/Backup-Recordings/run-backup-recordings_error.log new file mode 100644 index 0000000..a0017cb --- /dev/null +++ b/macos/Backup-Recordings/run-backup-recordings_error.log @@ -0,0 +1,34 @@ +Transfer starting: 2080 files +./00_MacOS/ErsterGitarrenTest/.DS_Store +./00_MacOS/Mobile Beats/.DS_Store +./00_MacOS/ReaperOnLinuxErsterTestt/.DS_Store +./00_MacOS/Vielleicht mal ein RMB Song/.DS_Store +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/00_MacOS/ErsterGitarrenTest/..DS_Store.bvPX7I" failed: Operation not permitted (1) +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/00_MacOS/Mobile Beats/..DS_Store.3IHOo3" failed: Operation not permitted (1) +rsync: failed to set times on "/Volumes/rob/recordings/Progress/Work/02_Windows/After Work - NY Video": Operation not permitted (1) +./00_MacOS/dance the break/.DS_Store +./01_Linux/DumDrumsV1/.DS_Store +./01_Linux/Maschienenraum/.DS_Store +./01_Linux/VN9J6C~K/.DS_Store +./01_Linux/YoutubeNachbauen/.DS_Store +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/00_MacOS/ReaperOnLinuxErsterTestt/..DS_Store.HZfDuM" failed: Operation not permitted (1) +./02_Windows/LMMS/.DS_Store +./02_Windows/MCSequencer-FirstTest/.DS_Store +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/00_MacOS/Vielleicht mal ein RMB Song/..DS_Store.ROkSo0" failed: Operation not permitted (1) +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/00_MacOS/dance the break/..DS_Store.aFBtuQ" failed: Operation not permitted (1) +rsync: failed to set times on "/Volumes/rob/recordings/Progress/Work/02_Windows/WakeMeUp": Operation not permitted (1) +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/01_Linux/DumDrumsV1/..DS_Store.yWjLTm" failed: Operation not permitted (1) +./03_LMMS/plugins/.DS_Store +./05_Midi/Groove Monkee Free MIDI GM/.DS_Store +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/01_Linux/Maschienenraum/..DS_Store.lnwOWK" failed: Operation not permitted (1) +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/01_Linux/VN9J6C~K/..DS_Store.q9CbtG" failed: Operation not permitted (1) +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/01_Linux/YoutubeNachbauen/..DS_Store.JnjLUb" failed: Operation not permitted (1) +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/02_Windows/LMMS/..DS_Store.iWwhBB" failed: Operation not permitted (1) +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/02_Windows/MCSequencer-FirstTest/..DS_Store.kuF708" failed: Operation not permitted (1) +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/03_LMMS/plugins/..DS_Store.GF6pRJ" failed: Operation not permitted (1) +rsync: mkstemp "/Volumes/rob/recordings/Progress/Work/05_Midi/Groove Monkee Free MIDI GM/..DS_Store.UerlTC" failed: Operation not permitted (1) + +sent 258314 bytes received 318 bytes 7085 bytes/sec +total size is 646892330 speedup is 2501.21 +rsync: failed to set times on "/Volumes/rob/recordings/Progress/Work/02_Windows/After Work - NY Video": Operation not permitted (1) +rsync: failed to set times on "/Volumes/rob/recordings/Progress/Work/02_Windows/WakeMeUp": Operation not permitted (1) diff --git a/macos/Backup-Recordings/run-backup-recordings_output.log b/macos/Backup-Recordings/run-backup-recordings_output.log new file mode 100644 index 0000000..e4088d3 --- /dev/null +++ b/macos/Backup-Recordings/run-backup-recordings_output.log @@ -0,0 +1,2 @@ +Netzlaufwerk ist gemountet. Backup startet... +Backup abgeschlossen: 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