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 einem Linux ist der Befel 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
...

Weitere Infos findest du auf stackoverflow:
https://stackoverflow.com/questions/22192842/how-to-check-if-filepath-is-mounted-in-os-x-using-bash


Gib mir gerne einen Kaffee ☕ aus!

Wenn dir meine Beiträge gefallen und geholfen haben, dann kannst du mir gerne einen Kaffee ☕ ausgeben.

PayPal Logo


liberapay.com/strobelstefan.org


Kaffee via Bitcoin

bc1qfuz93hw2fhdvfuxf6mlxlk8zdadvnktppkzqzj


Photo by Siyuan Hu on Unsplash

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.