Nutzt man den Verzeichnisdienst des macOS Servers und hat dort Benutzer und Gruppen angelegt, so möchte man diese Daten auch gerne sichern. Zwar lässt sich das OpenDirectory über die Server-App jederzeit manuell archivieren und auch bei einem Totalausfall des Servers können diese Daten aus einem TimeMachine-Backup wiederhergestellt werden, aber ab und zu hat man auch mal gerne ein davon unabhängiges Archiv des Verzeichnisses zur Hand.

Über das Kommandozeilen-Tool serveradmin lässt sich ein solches (verschlüsseltes) Backup auf die Festplatte schreiben — genau so wie es auch die Server-App erledigt. Für eine automatisierte, regelmäßige Sicherung per cronjob habe ich das folgende Shell-Script geschrieben, das neben dem Anlegen eines aktuellen Verzeichnis-Archivs auch hinter sich aufräumt und ältere Sicherungen entfernt.

Wie viele Backups aufgehoben werden sollen kann in Zeile 6 über den Parameter KEEP_MAX definiert werden. I Zeile 9 vergibt man ein (gutes) Passwort, mit dem das Archiv verschlüsselt wird. Das Backup-Script selbst sollte daher auch über entsprechende Zugriffsrechte geschützt werden, damit nicht jeder Nutzer des Systems das Passwort auslesen kann. Den Speicherort der Backups gibt man in Zeile 12 über die Variable BACKUP_PATH an.

Das Script legt Archive mit Dateinamen der Form od_20161008024511.sparseimage in, wobei die Zahlen für das aktuelle Datum (Jahr, Monat, Tag) und die Uhrzeit (Stunde, Minute, Sekunde) stehen. Wer das ändern möchte wird in Zeile 18 fündig, dort ist das Datumsformat über den Parameter des date-Befehls definiert. Da das Script zum Aufräumen allerdings nach einen Datum sucht, was ausschließlich aus Zahlen besteht sollte man hier bei Änderungen vorsichtig sein oder gleich in Zeile 32 des Scripts ebenfalls passende Änderungen vornehmen.

Ich sichere das OpenDirectory meines Servers täglich um 1:00 Uhr per cronjob des Nutzers root: