Backup-Skript mit AppleScript erstellen

In älteren Beiträgen hatte ich bereits das Kommandozeilenprogramm rsync vorgestellt. Dieses Tool kann beispielsweise in einem Automator-Workflow verwendet werden, um bestimmte Verzeichnisse zu sichern.

Mehr Flexibilität bietet aber die Verwendung von AppleScript oder JavaScript. Beide Programmiersprachen können in dem — auf jedem macOS vorhandenen — Skripteditor verwendet werden, um Arbeitsabläufe zu automatisieren.

In diesem Tutorial möchte ich zeigen, wie mit AppleScript und rsync ein einfaches Backup-Skript geschrieben werden kann. Dieses Skript könnte Euch dann als Vorlage für die Umsetzung eigener Ideen dienen.

Der Skripteditor

Apples Skripteditor versteckt sich im Verzeichnis

> Programme > Dienstprogramme

Nach dem Start öffnet sich ein Fenster, in dem ihr auf „Neues Dokument“ klickt. Es erscheint dann folgende Ansicht:

Leeres Skripteditor-Dokument
Ein leeres Skripteditor-Dokument

Da die standardmäßig eingestellte Schriftgröße relativ klein ist, habe ich sie in den Einstellungen angepasst:

> Skripteditor > Einstellungen > Formatierung
Einstellungen für Schriftart und Schriftgröße

Wählt dort eine Kategorie aus und nutzt anschließend die Tastenkombination command + a, um alle Zeilen zu markieren. Mit einem Doppelklick auf den so markierten Bereich öffnet Ihr das Schriften-Fenster. Dort könnt ihr jetzt die gewünschte Schriftart und die Schriftgröße aussuchen. Abschließend müsst ihr eure Wahl mit einem Klick auf „Anwenden“ speichern. Es kann sein, dass die Änderungen von Schriftart und Schriftgröße erst in einem neuen Dokument sichtbar werden.

Der Code

Bevor es richtig losgeht, ein Hinweis zu Kommentaren. Diese werden in AppleScript mit zwei Bindestrichen (--) eingeleitet. Hier beginne ich mit einer kurzen Beschreibung und der Versionsnummer:

-- Daten mit rsync sichern
-- Version 1.0

In diesem Beispiel soll das Verzeichnis „Artikel“, das sich auf dem Schreibtisch befindet, auf einem USB-Stick mit der Bezeichnung „Backups“ gesichert werden. Die dafür erforderliche rsync-Anweisung sieht wie folgt aus:

rsync -av --delete /Users/bodo/Desktop/Artikel/ /Volumes/Backups/Artikel

Wenn ihr dieses Beispiel auf eurem Mac ausprobieren möchtet, müsst ihr darauf achten, den Pfad anzupassen. So ist der Benutzername „bodo“ durch Euren Benutzernamen zu ersetzen.

Wichtiger Hinweis: Bei rsync ist die Verwendung der richtigen Syntax von besonderer Bedeutung. Andernfalls kann es zu Datenverlust kommen. Aus diesem Grund solltet ihr zunächst von einem Testordner (mit bedeutungslosem Datenmüll) ein Backup erstellen und euch dann erst an die wirklich wichtigen Dateien heranwagen.

Als Optionen sind hier -av und --delete angegeben. Das -a steht für archive, also für die Archivierungsfunktion von rsync. Und -v steht für verbose, wodurch zahlreiche Meldungen zum Backup-Vorgang ausgegeben werden. Letzteres ist von Bedeutung, wenn der Code im Skripteditor getestet wird.

Wie wird nun dieser Befehl in AppleScript „eingebaut“? Zunächst gar nicht. Denn beginnen möchte ich mit einem Dialog, der den Benutzer um eine Bestätigung bittet:

-- Hinweisfenster
set theDialogText to "Dieses Programm sichert alle Dateien des Ordners 'Artikel' auf den USB-Stick. Soll das Backup gestartet werden?"
display dialog theDialogText with icon caution

Der Code sollte selbsterklärend sein. Mit „set theDialogText to“ wird der anzuzeigende Text festgelegt. Die Zeile „display dialog theDialogText with icon caution“ zeigt das Dialogfenster an, wobei mit „with icon caution“ zusätzlich zum Text ein Icon erscheint.

Standardmäßig hat so ein Dialogfenster zwei Buttons: „Ok“ und „Abbrechen“. Nach einem Klick auf „Ok“ wird der nachfolgende Code ausgeführt. Ein Klick auf „Abbrechen“ beendet hingegen die Ausführung des Skripts.

Ein mit Apple Skript erzeugtes Dialog-Fenster
Über einen Dialog wird das Backup gestartet oder abgebrochen.

Nach dem Code für das Dialogfenster folgt die rsync-Anweisung, die in do shell script eingebunden werden muss:

do shell script "rsync -av --delete /Users/bodo/Desktop/Artikel/ /Volumes/Backups/Artikel"

Nach einem Klick auf den Play-Button wird das Skript ausgeführt, wobei vermutlich zunächst zwei Dialoge erscheinen, die euch fragen, ob der Skripteditor auf den Schreibtisch und auf ein Wechselmedium (USB-Stick) zugreifen darf. Beides müsst ihr bestätigen.

Unter dem Editor befindet sich das Ergebnisfenster. Dort erhaltet ihr Informationen zur laufenden Datensicherung.

Das Skript wird ausgeführt.

Der komplette Code sieht wie folgt aus:

-- Daten mit rsync sichern
-- Version 1.0

-- Hinweisfensterset
theDialogText to "Dieses Programm sichert alle Dateien des Ordners 'Artikel' auf den USB-Stick. Soll das Backup gestartet werden?"
display dialog theDialogText with icon caution

-- rsync ausführen
do shell script "rsync -av --delete /Users/bodo/Desktop/Artikel/ /Volumes/Backups/Artikel"

App erstellen

Das Skript kann als solches abgespeichert werden, d.h. im Speichern-Dialog wählt ihr als Dateiformat „Skript“ aus. Darüber hinaus könnt ihr auch eine App erstellen. Dazu ist bei „Dateiformat“ die Option „App“ auszuwählen.

Skript als App speichern

Falls ihr das Skript bereits im Dateiformat „Skript“ gespeichert habt, könnt ihr es nachträglich als „App“ exportieren:

> Ablage > Exportieren

Nach dem Aufrufen des Programms können Fehler auftreten. Deswegen befasst sich die Fortsetzung zu diesem Tutorial mit der Fehlerbehandlung.

Weiterführende Links

Zuletzt aktualisiert am 19. März 2026