macOS - Datensicherung mit rsync
Die Datensicherung auf einem Mac lässt sich mit rsync und einem kleinen Bash Skript sehr gut automatisieren.
In meinem Beitrag 👉 Datensicherung mit rsync habe ich bereits ein Skript vorgestellt, mit dem ich auf einem Linux-System meine Backups erstelle.
Das gleiche Skript kann auch unter macOS problemlos verwendet werden.
Die notwendigen Tools bringt das Betriebssystem schon mit und müssen nicht mehr nachträglich installiert werden.
Pfade anpassen
Das Einzige was du noch machen musst, die Pfade im Skript anpassen.
Dazu gehst du im Terminal in den jeweiligen Ordner und gibst den Befehl pwd
ein, um die den ganzen Pfad anzeigen zu lassen. Den vollständigen Pfad fügst du dann in das Skript ein.
Das Skript kannst du irgendwo in deinem Home-Ordner abspeichern. Du kannst das Skript auch in einem Git Repository versionieren.
Backup-Ordner anlegen
Möchtest du die Backup-Funktion des Skripts nutzen, dann lege am besten einen neuen Ordner an, in den das Skript das Log und die gelöschten Ordner bzw. Dateien kopieren kann.
mkdir ~/rsync-ordner
Probelauf
Wenn du die Pfade angepasst hast, dann starte das Skript einmal manuell und prüfe, ob alles passt. Achte darauf, dass die Option n
für dry-run gesetzt ist.
Läuft die Datensicherung, dann entferne das n
und lege einen Cron an. Durch den Cron wird das Skript dann automatisch aufgerufen und gestartet.
Cron erstellen
Gib im Terminal den Befehl ein
crontab -e
Trage nun die Zeile ein, um das Skript automatisch zu starten.
0 * * * * sh /Users/benutzer/Documents/backups/rsync/backup.sh
Skript nur bei angeschlossener Festplatte ausführen
Der Cron führt das Skript nun jede Stunde automatisch aus und versucht eine Datensicherung zu erstellen.
Wenn du nun eine externe Festplatte oder ein Netzlaufwerk für die Datensicherung verwendest kann, sollte die Platte angeschlossen sein.
Du kannst das Skript vor der Ausführung prüfen lassen, ob das Ziel vorhanden ist.
Dazu erstellst du einfach ein neues Skript. Dieses Skript prüft, ob das BACKUPSTORAGE
(externe Festplatte, Netzlaufwerk, etc.) erreichbar ist. Ist das der Fall, werden die Sicherungsskripte aufgerufen:
sh /Users/benutzer/Documents/backups/rsync/backup-documents.sh
sh /Users/benutzer/Documents/backups/rsync/backup-bilder.sh
Der Inhalt des Skripts sieht so aus:
#!/usr/bin/env bash
#Backup storage
BACKUPSTORAGE="/Volumes/Sicherung"
# Location of your log file
LOGFILE="/Users/benutzer/rsync/rsync-gesamt-logfile-"$(date +%Y-%m-%d_%H-%M-%S)"-.log"
if [ -d ${BACKUPSTORAGE} ]
then
echo $(date +%Y-%m-%d_%H-%M-%S) ${BACKUPSTORAGE} "Mount available - START Backup Script" >> ${LOGFILE}
sh /Users/benutzer/Documents/backups/rsync/backup-documents.sh
sh /Users/benutzer/Documents/backups/rsync/backup-bilder.sh
else
echo "Not mounted"
sleep 5
echo $(date +%Y-%m-%d_%H-%M-%S) ${BACKUPSTORAGE} "not mounted - NO BACKUP" >> ${LOGFILE}
fi
Der Cron ist dann nur für das neue Skript anzulegen.
Der Unterschied zu Linux ist der Befehl zu Ermittlung des Mount Point. Bei Linux gibt es den Befehl
mountpoint -q
den macOS so nicht kennt. Deshalb muss mit
df
gearbeitet werden. Nachfolgend ist das kurz dargestellt.
...
if [ -d ${BACKUPSTORAGE} ]
then
...
else
...
Linux
...
if mountpoint -q ${BACKUPSTORAGE}
then
...
else
...
Gib mir gerne einen Kaffee ☕ aus ❗️
Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕️ ausgeben.
Follow Me❗️
Source
- 👉 Weitere Infos findest du auf stackoverflow: https://stackoverflow.com/questions/22192842/how-to-check-if-filepath-is-mounted-in-os-x-using-bash
- Photo by Siyuan Hu on Unsplash