crontab -e · Umgebungsunterschiede · System- vs. Benutzer-crontab
Aufgaben bearbeitet man üblicherweise mit crontab -e. Dieser Befehl öffnet die crontab ausschließlich des aktuellen Benutzers und übernimmt sie nach dem Speichern, nachdem die Syntax geprüft wurde. Die Liste zeigt crontab -l, alles löschen crontab -r — dabei ist Vorsicht geboten, denn -r löscht ohne Rückfrage.
Die Umgebung, in der cron Aufgaben ausführt, unterscheidet sich von der Shell, in der Sie sich anmelden. cron stellt nur eine minimale Umgebung bereit, und auch PATH ist meist kurz, etwa /usr/bin:/bin. Deshalb schlägt ein Befehl, der in der Login-Shell funktioniert, in cron oft mit 'Befehl nicht gefunden' fehl. Es ist sicherer, Befehle mit absolutem Pfad anzugeben.
Sie können oben in der crontab-Datei Umgebungsvariablen deklarieren. Häufig verwendet werden PATH=/usr/local/bin:/usr/bin:/bin, SHELL=/bin/bash, MAILTO="you@example.com" und, um die Zeitzone festzulegen, CRON_TZ=Asia/Seoul. Enthält ein Wert Leerzeichen, umschließen Sie ihn mit Anführungszeichen.
Benutzer-crontab und System-crontab haben unterschiedliche Formate. Die mit crontab -e erstellte Benutzer-crontab hat die standardmäßigen 5 Felder (Minute Stunde Tag Monat Wochentag). Die Systemeinträge in /etc/crontab und /etc/cron.d/* haben hingegen nach dem Wochentag ein zusätzliches Feld für den ausführenden Benutzer, also 6 Felder (Minute Stunde Tag Monat Wochentag user Befehl). Da dieses Tool die standardmäßigen 5 Felder interpretiert, lassen Sie beim Prüfen einer System-crontab das Benutzerfeld weg und geben nur die ersten 5 Felder ein.
Statt einer genauen Uhrzeit reicht bei 'täglich · stündlich' auch die Methode, Skripte in Drop-in-Verzeichnisse wie /etc/cron.daily oder /etc/cron.hourly zu legen. Sie werden ohne Ausdruck im festgelegten Intervall ausgeführt. Nur wenn eine bestimmte Minute oder Uhrzeit nötig ist, tragen Sie den mit diesem Tool erstellten Ausdruck in die crontab ein — so bleibt die Verwaltung übersichtlich.