Ausführen eines Shell-Skripts zu bestimmten Zeiten
Soll ein Shell-Skript zu einem bestimmten Zeitpunkt ausgeführt werden, kannst du entweder launchd
oder cron
verwenden.
Aufgaben mit launchd terminieren
Verwende
launchd
anstelle voncron
, um Aufgaben zu bestimmten Zeiten auszuführen. Wird beilaunchd
eine Aufgabe ausgelassen, weil der Computer ausgeschaltet oder in den Ruhezustand geschaltet wird, wird diese Aufgabe der Warteliste hinzugefügt, sobald der Computer wieder online ist.Sollen mit
launchd
zu Timer-basierte Aufgaben terminiert werden, musst du den SchlüsselStartCalendarInterval
oderStartInterval
verwenden.Weitere Informationen über
launchd
findest du auf der zugehörigen man-Seite.
cron zum Terminieren einer Aufgabe verwenden
Der Daemon cron
führt terminierte Befehle so aus, wie diese in crontab-Dateien definiert sind. Der Daemon cron
durchsucht den Ordner „/usr/lib/cron/tabs/“ nach crontab-Dateien, die nach Accounts in „/etc/passwd“ benannt sind, und lädt diese Dateien in den Arbeitsspeicher. Der Daemon cron
durchsucht auch den Ordner „/etc/crontab/“ nach crontab-Dateien, die ein anderes Format aufweisen. cron
läuft jede Minute zyklisch ab, prüft gespeicherte crontab-Dateien und untersucht bei jedem Befehl, ob er in der aktuellen Minute ausgeführt werden soll.
Wenn Befehle ausgeführt werden, wird die Ausgabe an den Eigentümer der crontab-Datei oder den in der optionalen MAILTO-Umgebungsvariablen genannten Benutzer gemailt.
Mit dem Befehl crontab
werden die zum Betreiben des Daemons cron
verwendeten Tabellen installiert, deinstalliert oder aufgelistet. Benutzer können ihre eigenen crontab-Dateien verwenden.
Verwende den Befehl
crontab -e
, um deine crontab-Datei zu konfigurieren. Dadurch wird eine leere crontab-Datei im Bearbeitungsmodus geöffnet.Hier ein Beispiel einer crontab-Datei:
SHELL=/bin/sh
PATH=/bin:/sbin:/usr/bin:/usr/sbin
HOME=/var/log
#min hour mday month wday command
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
50 23 * * 0 diskutil repairVolume /Volumes/MacHD
In diesem Beispiel repariert der erste Eintrag Volume-Zugriffsrechte für das MacHD-Volume täglich von Montag bis Freitag um 18:30 Uhr:
30 18 * * 1-5 diskutil repairPermissions /Volumes/MacHD
Der zweite Eintrag legt eine Operation zum Reparieren von Volumes für jeden Sonntag um 23:50 Uhr fest:
50 23 * * 0 diskutil repairVolume /Volumes/MacHD