Die Automatisierung sich wiederholender Aufgaben ist ein grundlegender Bestandteil der Linux-Serveradministration. Ob Sie naechtliche Datenbank-Backups, woechentliche Log-Rotation oder minuetliche Gesundheitspruefungen benoetigen — Cron ist der zeitbasierte Aufgabenplaner, der all das erledigt. Er ist seit den 1970er-Jahren ein fester Bestandteil von Unix-aehnlichen Systemen, und jede Linux-Distribution liefert ihn mit.
Dieser Leitfaden deckt alles ab, von der grundlegenden Crontab-Syntax bis hin zu fortgeschrittenen Techniken wie der Verwaltung von Umgebungsvariablen, Ausgabeprotokollierung, Sicherheitseinschraenkungen und praxisnahen Planungsmustern. Am Ende werden Sie in der Lage sein, Cron Jobs auf jedem Linux-System sicher zu planen, zu debuggen und zu warten.
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Folgendes haben:
- Ein Linux-System (Ubuntu, Debian, CentOS, RHEL oder jede andere Distribution)
- Ein Terminal mit Shell-Zugang (lokal oder SSH)
- Ein Nicht-Root-Benutzerkonto mit
sudo-Berechtigungen - Grundlegende Vertrautheit mit der Kommandozeile und einem Texteditor (
nanoodervim)
Ueberpruefen Sie, ob Cron installiert und aktiv ist:
# Pruefen, ob Cron aktiv ist
systemctl status cron
# Auf RHEL/CentOS heisst der Dienst crond
systemctl status crond
Wenn Cron nicht installiert ist, installieren Sie es:
# Debian/Ubuntu
sudo apt update && sudo apt install -y cron
# RHEL/CentOS/Fedora
sudo dnf install -y cronie
# Dienst aktivieren und starten
sudo systemctl enable cron && sudo systemctl start cron
Was ist Cron?
Cron ist ein zeitbasierter Daemon zur Aufgabenplanung, der auf praktisch jedem Unix- und Linux-System zu finden ist. Der Name leitet sich vom griechischen Wort chronos (Zeit) ab. Cron liest Konfigurationsdateien namens Crontabs (Cron-Tabellen) und fuehrt Befehle in festgelegten Intervallen aus — einmal pro Minute, einmal pro Stunde, einmal pro Tag oder in jeder beliebigen Kombination von Zeitfeldern.
Cron loest ein einfaches, aber entscheidendes Problem: Aufgaben, die regelmaessig erledigt werden muessen, sollten nicht davon abhaengen, dass jemand daran denkt, sie auszufuehren. Automatische Backups, Log-Bereinigung, Systemueberwachung, Zertifikatserneuerung und Datenbankwartung sind alles Aufgaben, die in Cron gehoeren.
Wie Cron funktioniert
Das Verstaendnis der Architektur hilft Ihnen, Probleme schneller zu debuggen.
Der Cron-Daemon
Der Cron-Daemon (crond oder cron) startet beim Booten und laeuft kontinuierlich im Hintergrund. Jede Minute wacht er auf und prueft alle Crontab-Dateien auf Aufgaben, die zum aktuellen Zeitpunkt geplant sind. Wenn eine Uebereinstimmung gefunden wird, fuehrt er den Befehl aus.
# Ueberpruefen, ob der Daemon laeuft
ps aux | grep cron
Benutzer-Crontabs
Jeder Benutzer auf dem System kann eine eigene Crontab haben. Diese werden in /var/spool/cron/crontabs/ (Debian/Ubuntu) oder /var/spool/cron/ (RHEL/CentOS) gespeichert. Sie sollten diese Dateien niemals direkt bearbeiten — verwenden Sie immer den crontab-Befehl.
Die System-Crontab
Die Datei /etc/crontab ist die systemweite Crontab. Im Gegensatz zu Benutzer-Crontabs enthaelt sie ein Benutzernamenfeld zwischen den Zeitfeldern und dem Befehl:
# /etc/crontab Format (beachten Sie das Benutzernamenfeld)
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily
Das Verzeichnis /etc/cron.d/
Paketbetreuer und Systemadministratoren koennen einzelne Cron-Dateien in /etc/cron.d/ ablegen. Diese folgen dem gleichen Format wie /etc/crontab (mit dem Benutzernamenfeld). Dies ist die bevorzugte Methode zum Hinzufuegen systemweiter Cron Jobs, da die Dateien isoliert und einfach zu verwalten sind.
Crontab-Syntax erklaert
Jeder Crontab-Eintrag ist eine einzelne Zeile mit fuenf Zeit-und-Datum-Feldern, gefolgt vom auszufuehrenden Befehl:
┌───────────── Minute (0–59)
│ ┌───────────── Stunde (0–23)
│ │ ┌───────────── Tag des Monats (1–31)
│ │ │ ┌───────────── Monat (1–12 oder jan–dec)
│ │ │ │ ┌───────────── Wochentag (0–7, 0 und 7 = Sonntag, oder sun–sat)
│ │ │ │ │
* * * * * auszufuehrender_befehl
Feldwerte und Operatoren
| Operator | Bedeutung | Beispiel |
|---|---|---|
* | Beliebiger Wert | * * * * * = jede Minute |
, | Liste von Werten | 1,15,30 * * * * = Minuten 1, 15, 30 |
- | Wertebereich | 1-5 * * * * = Minuten 1 bis 5 |
/ | Schrittwerte | */10 * * * * = alle 10 Minuten |
Beispiele fuer Zeitangaben
# Jede Minute
* * * * * /pfad/zum/script.sh
# Jeden Tag um 2:30 Uhr
30 2 * * * /pfad/zum/script.sh
# Jeden Montag um 17:00 Uhr
0 17 * * 1 /pfad/zum/script.sh
# Alle 15 Minuten
*/15 * * * * /pfad/zum/script.sh
# Erster Tag jeden Monats um Mitternacht
0 0 1 * * /pfad/zum/script.sh
# Jeden Werktag (Mo-Fr) um 8:00 Uhr
0 8 * * 1-5 /pfad/zum/script.sh
# Alle 6 Stunden
0 */6 * * * /pfad/zum/script.sh
# 1. Januar um Mitternacht
0 0 1 1 * /pfad/zum/script.sh
Spezielle Zeichenketten
Cron unterstuetzt auch Kurzformen fuer gaengige Zeitplaene:
| Zeichenkette | Aequivalent | Beschreibung |
|---|---|---|
@reboot | N/A | Einmal beim Systemstart ausfuehren |
@yearly | 0 0 1 1 * | Einmal im Jahr (1. Januar, Mitternacht) |
@monthly | 0 0 1 * * | Einmal im Monat (1., Mitternacht) |
@weekly | 0 0 * * 0 | Einmal pro Woche (Sonntag, Mitternacht) |
@daily | 0 0 * * * | Einmal taeglich (Mitternacht) |
@hourly | 0 * * * * | Einmal stuendlich (Minute 0) |
# Skript bei jedem Systemstart ausfuehren
@reboot /home/benutzer/startaufgaben.sh
# Taegliche Log-Rotation
@daily /usr/local/bin/log-rotation.sh
Crontab verwalten
Der crontab-Befehl ist Ihre primaere Schnittstelle zum Erstellen und Verwalten geplanter Aufgaben.
Ihre Crontab bearbeiten
# Crontab im Standardeditor oeffnen
crontab -e
# Crontab eines anderen Benutzers bearbeiten (erfordert Root)
sudo crontab -u www-data -e
Beim ersten Ausfuehren von crontab -e werden Sie aufgefordert, einen Editor auszuwaehlen. Waehlen Sie nano, wenn Sie mit vim nicht vertraut sind.
Aktuelle Aufgaben auflisten
# Ihre Cron Jobs auflisten
crontab -l
# Cron Jobs eines anderen Benutzers auflisten
sudo crontab -u www-data -l
# Die System-Crontab anzeigen
cat /etc/crontab
Eine Crontab entfernen
# Ihre gesamte Crontab entfernen (mit Vorsicht verwenden)
crontab -r
# Interaktive Entfernung -- fragt nach Bestaetigung
crontab -i -r
# Crontab eines anderen Benutzers entfernen
sudo crontab -u username -r
Warnung:
crontab -rloescht sofort alle Ihre Cron Jobs ohne Bestaetigung und ohne Rueckgaengigmachen. Wenn Sie nur einen Eintrag entfernen moechten, verwenden Siecrontab -eund loeschen Sie die spezifische Zeile.
Ihre Crontab sichern
Sichern Sie Ihre Crontab immer, bevor Sie Aenderungen vornehmen:
# Aktuelle Crontab in eine Datei speichern
crontab -l > ~/crontab-backup-$(date +%Y%m%d).txt
# Aus Backup wiederherstellen
crontab ~/crontab-backup-20260124.txt
Umgebungsvariablen in Cron
Eine der haeufigsten Ursachen fuer Cron-Job-Fehler ist die Umgebung. Cron Jobs laufen mit einer minimalen Umgebung, die sich stark von Ihrer interaktiven Shell unterscheidet. Ihre ~/.bashrc-, ~/.bash_profile- und Login-Skripte werden nicht geladen.
Die Standard-Cron-Umgebung
Standardmaessig setzt Cron typischerweise nur:
SHELL=/bin/sh
PATH=/usr/bin:/bin
HOME=/home/username
LOGNAME=username
Beachten Sie, dass /usr/local/bin, /snap/bin und andere Verzeichnisse, die Sie in Ihrem PATH erwarten koennten, fehlen. Deshalb kann ein Befehl, der in Ihrem Terminal perfekt funktioniert, in Cron stillschweigend fehlschlagen.
Variablen in der Crontab setzen
Sie koennen Umgebungsvariablen am Anfang Ihrer Crontab definieren:
# Einen vollstaendigen PATH setzen
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# Die Shell setzen
SHELL=/bin/bash
# E-Mail fuer Cron-Ausgabe setzen
MAILTO=admin@example.com
# Ihre Cron Jobs darunter
0 2 * * * /home/benutzer/backup.sh
Absolute Pfade in Befehlen verwenden
Der sicherste Ansatz ist, immer absolute Pfade fuer jeden Befehl in Ihren Cron Jobs zu verwenden:
# Schlecht -- verlaesst sich auf PATH
0 2 * * * mysqldump mydb > /tmp/backup.sql
# Gut -- verwendet vollstaendigen Pfad
0 2 * * * /usr/bin/mysqldump mydb > /tmp/backup.sql
Sie koennen den vollstaendigen Pfad jedes Befehls mit which finden:
which mysqldump
# Ausgabe: /usr/bin/mysqldump
which python3
# Ausgabe: /usr/bin/python3
Ausgabe und Protokollierung
Standardmaessig sendet Cron jede Ausgabe (stdout und stderr) einer Aufgabe per E-Mail an das lokale Postfach des Crontab-Besitzers. Auf den meisten Servern wird dies nicht gelesen. Eine ordentliche Protokollierung ist unerlaeßlich.
Ausgabe in eine Logdatei umleiten
# stdout und stderr in eine Logdatei umleiten
0 2 * * * /home/benutzer/backup.sh >> /var/log/backup.log 2>&1
# stdout und stderr in verschiedene Dateien trennen
0 2 * * * /home/benutzer/backup.sh >> /var/log/backup.log 2>> /var/log/backup-errors.log
# Gesamte Ausgabe verwerfen (stille Ausfuehrung)
0 2 * * * /home/benutzer/backup.sh > /dev/null 2>&1
Best Practice: Verwerfen Sie die Ausgabe niemals waehrend der Entwicklung und des Testens. Sobald Ihr Cron Job als stabil erwiesen ist, koennen Sie nur stderr umleiten und stdout verwerfen:
command > /dev/null 2>> /var/log/errors.log.
MAILTO fuer E-Mail-Benachrichtigungen verwenden
Die Variable MAILTO steuert, wohin Cron die Aufgabenausgabe sendet:
# Ausgabe an eine bestimmte E-Mail-Adresse senden
MAILTO=admin@example.com
# An mehrere Empfaenger senden
MAILTO=admin@example.com,devops@example.com
# E-Mail vollstaendig deaktivieren
MAILTO=""
# Alle nachfolgenden Jobs erben die MAILTO-Einstellung
0 2 * * * /home/benutzer/backup.sh
Damit E-Mail funktioniert, benoetigt Ihr Server einen funktionierenden Mail Transfer Agent (MTA) wie postfix oder sendmail.
Das Cron-Log pruefen
Cron protokolliert jede Aufgabenausfuehrung in syslog. Das ist Ihre erste Anlaufstelle beim Debugging:
# Cron-Eintraege in syslog anzeigen (Debian/Ubuntu)
grep CRON /var/log/syslog
# Cron-Eintraege auf RHEL/CentOS anzeigen
grep CRON /var/log/cron
# Das Log in Echtzeit verfolgen
tail -f /var/log/syslog | grep CRON
Ein typischer Logeintrag sieht so aus:
Jan 24 02:00:01 server CRON[12345]: (user) CMD (/home/user/backup.sh)
Dies bestaetigt, dass die Aufgabe ausgeloest wurde. Wenn der Befehl im Log fehlt, liegt das Problem bei der Crontab-Syntax oder dem Daemon selbst.
Praktische Beispiele
Beispiel 1: Automatisiertes Datenbank-Backup
# MySQL-Datenbank jede Nacht um 2:00 Uhr sichern
0 2 * * * /usr/bin/mysqldump -u dbuser -p'SecurePass123' mydb | /usr/bin/gzip > /backup/mysql/mydb-$(date +\%Y\%m\%d).sql.gz 2>> /var/log/mysql-backup.log
Hinweis: In der Crontab muessen Sie Prozentzeichen (
%) mit einem Backslash (\%) escapen, da Cron%als Zeilenumbruch interpretiert. Dies ist eine der haeufigsten Cron-Fallen.
Ein robusterer Ansatz verwendet ein Wrapper-Skript:
#!/bin/bash
# /home/benutzer/scripts/mysql-backup.sh
BACKUP_DIR="/backup/mysql"
DB_NAME="mydb"
DATE=$(date +%Y%m%d_%H%M%S)
LOG="/var/log/mysql-backup.log"
echo "[$DATE] Starting backup of $DB_NAME" >> "$LOG"
/usr/bin/mysqldump -u dbuser -p'SecurePass123' "$DB_NAME" | /usr/bin/gzip > "$BACKUP_DIR/${DB_NAME}-${DATE}.sql.gz"
if [ $? -eq 0 ]; then
echo "[$DATE] Backup completed successfully" >> "$LOG"
else
echo "[$DATE] ERROR: Backup failed" >> "$LOG"
fi
# Backups aelter als 30 Tage loeschen
find "$BACKUP_DIR" -name "*.sql.gz" -mtime +30 -delete
# Crontab-Eintrag fuer das Wrapper-Skript
0 2 * * * /home/benutzer/scripts/mysql-backup.sh
Beispiel 2: Log-Bereinigung
# Logdateien aelter als 7 Tage jeden Sonntag um 3:00 Uhr loeschen
0 3 * * 0 /usr/bin/find /var/log/myapp -name "*.log" -mtime +7 -delete >> /var/log/cleanup.log 2>&1
# Logs aelter als 1 Tag komprimieren, taeglich um 4:00 Uhr
0 4 * * * /usr/bin/find /var/log/myapp -name "*.log" -mtime +1 ! -name "*.gz" -exec /usr/bin/gzip {} \; 2>> /var/log/cleanup-errors.log
Beispiel 3: Systemueberwachung
# Festplattennutzung alle 5 Minuten pruefen, Alarm bei ueber 90%
*/5 * * * * /home/benutzer/scripts/disk-check.sh
Das Ueberwachungsskript:
#!/bin/bash
# /home/benutzer/scripts/disk-check.sh
THRESHOLD=90
df -H | awk 'NR>1 {print $5 " " $6}' | while read usage mount; do
percent=$(echo "$usage" | tr -d '%')
if [ "$percent" -ge "$THRESHOLD" ]; then
echo "WARNUNG: Festplattennutzung auf $mount bei ${usage}" | \
/usr/bin/mail -s "Festplattenalarm: $mount bei ${usage}" admin@example.com
fi
done
Beispiel 4: SSL-Zertifikatserneuerung
# Zertifikatserneuerung zweimal taeglich versuchen (Let's Encrypt Empfehlung)
0 4,16 * * * /usr/bin/certbot renew --quiet --deploy-hook "systemctl reload nginx" >> /var/log/certbot-renew.log 2>&1
Beispiel 5: Systemaktualisierungen pruefen
# Jeden Morgen um 6:00 Uhr nach verfuegbaren Updates suchen
0 6 * * * /usr/bin/apt update -qq && /usr/bin/apt list --upgradable 2>/dev/null | /usr/bin/mail -s "Bericht verfuegbarer Updates" admin@example.com
Cron-Verzeichnisse
Linux-Distributionen bieten eine Reihe von Verzeichnissen fuer Skripte, die in vordefinierten Intervallen ausgefuehrt werden sollen. Legen Sie einfach ein ausfuehrbares Skript im entsprechenden Verzeichnis ab:
| Verzeichnis | Haeufigkeit |
|---|---|
/etc/cron.hourly/ | Stuendlich |
/etc/cron.daily/ | Taeglich |
/etc/cron.weekly/ | Woechentlich |
/etc/cron.monthly/ | Monatlich |
# Alle Skripte in cron.daily auflisten
ls -la /etc/cron.daily/
Anforderungen fuer Skripte in Cron-Verzeichnissen
- Das Skript muss ausfuehrbar sein:
chmod +x /etc/cron.daily/meinskript - Das Skript darf keine Dateiendung haben (
.sh,.py, usw.) —run-partsueberspringt auf vielen Systemen standardmaessig Dateien mit Punkten im Namen - Das Skript muss mit einem korrekten Shebang beginnen:
#!/bin/bash
# Ein taegliches Bereinigungsskript erstellen
sudo nano /etc/cron.daily/cleanup-temp
# Inhalt hinzufuegen:
#!/bin/bash
find /tmp -type f -mtime +7 -delete
# Ausfuehrbar machen
sudo chmod +x /etc/cron.daily/cleanup-temp
Hinweis: Diese Verzeichnisse werden auf vielen Distributionen von
anacronverwaltet, das sicherstellt, dass versaeumte Aufgaben nach dem Wiederanlaufen des Systems ausgefuehrt werden. Dies ist besonders nuetzlich fuer Laptops und Desktops, die nicht rund um die Uhr laufen.
Sicherheitsueberlegungen
Zugang mit cron.allow und cron.deny steuern
Sie koennen einschraenken, welche Benutzer Cron Jobs erstellen duerfen:
# /etc/cron.allow -- nur aufgelistete Benutzer koennen Cron verwenden
echo "admin" | sudo tee /etc/cron.allow
echo "deploy" | sudo tee -a /etc/cron.allow
# /etc/cron.deny -- aufgelistete Benutzer werden von der Cron-Nutzung ausgeschlossen
echo "guest" | sudo tee /etc/cron.deny
Die Logik lautet:
- Wenn
/etc/cron.allowexistiert, koennen nur dort aufgefuehrte Benutzer Cron verwenden - Wenn
/etc/cron.allownicht existiert, aber/etc/cron.denyexistiert, kann jeder ausser den aufgefuehrten Benutzern Cron verwenden - Wenn keine der beiden Dateien existiert, haengt das Standardverhalten von der Distribution ab (oft nur Root)
Dateiberechtigungen
Cron Jobs laufen mit den Berechtigungen des Benutzers, dem die Crontab gehoert. Halten Sie Ihre Skripte sicher:
# Sicherstellen, dass Skripte dem richtigen Benutzer gehoeren und nicht fuer alle beschreibbar sind
chmod 750 /home/benutzer/scripts/backup.sh
chown benutzer:benutzer /home/benutzer/scripts/backup.sh
# Passwoerter niemals in der Crontab speichern -- verwenden Sie Konfigurationsdateien mit eingeschraenkten Berechtigungen
chmod 600 /home/benutzer/.my.cnf
Cron Jobs als Root vermeiden
Erstellen Sie wann immer moeglich einen dedizierten Dienstbenutzer fuer Cron-Aufgaben:
# Einen dedizierten Backup-Benutzer erstellen
sudo useradd -r -s /usr/sbin/nologin backupuser
# Dessen Crontab einrichten
sudo crontab -u backupuser -e
Crontab-Syntax Kurzreferenz
| Zeitplan | Ausdruck | Beschreibung |
|---|---|---|
| Jede Minute | * * * * * | Laeuft jede Minute jeden Tages |
| Alle 5 Minuten | */5 * * * * | Laeuft zu den Minuten 0, 5, 10, 15, … |
| Stuendlich | 0 * * * * | Laeuft zu Beginn jeder Stunde |
| Alle 6 Stunden | 0 */6 * * * | Laeuft um 0:00, 6:00, 12:00, 18:00 |
| Taeglich um Mitternacht | 0 0 * * * | Laeuft einmal taeglich um 00:00 |
| Taeglich um 2:30 | 30 2 * * * | Laeuft einmal taeglich um 02:30 |
| Jeden Montag um 9 Uhr | 0 9 * * 1 | Laeuft woechentlich am Montagmorgen |
| Werktags um 8 Uhr | 0 8 * * 1-5 | Montag bis Freitag um 08:00 |
| Erster des Monats | 0 0 1 * * | Mitternacht am 1. jeden Monats |
| Vierteljaehrlich | 0 0 1 1,4,7,10 * | Mitternacht am 1. Jan, Apr, Jul, Okt |
| Zweimal taeglich | 0 4,16 * * * | Laeuft um 4:00 und 16:00 |
| Alle 30 Minuten | */30 * * * * | Laeuft um :00 und :30 jeder Stunde |
| Beim Neustart | @reboot | Laeuft einmal beim Systemstart |
Fehlerbehebung
Problem: Cron Job funktioniert im Terminal, aber nicht in Cron
Ursache: PATH-Unterschiede. Ihre interaktive Shell hat einen umfangreichen PATH; Cron nicht.
Loesung: Verwenden Sie absolute Pfade fuer alle Befehle oder setzen Sie PATH am Anfang Ihrer Crontab:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
Problem: Prozentzeichen brechen Befehle
Ursache: Cron interpretiert % als Zeilenumbruchzeichen.
Loesung: Escapen Sie alle Prozentzeichen mit einem Backslash:
# Falsch
0 2 * * * /usr/bin/date +%Y%m%d
# Richtig
0 2 * * * /usr/bin/date +\%Y\%m\%d
Problem: Zugriff-verweigert-Fehler
Ursache: Das Skript ist nicht ausfuehrbar oder der Benutzer hat keinen Zugriff.
Loesung:
# Das Skript ausfuehrbar machen
chmod +x /home/benutzer/scripts/meinskript.sh
# Eigentuemerschaft ueberpruefen
ls -la /home/benutzer/scripts/meinskript.sh
Problem: Zeitzonenprobleme
Ursache: Cron verwendet standardmaessig die Systemzeitzone. Wenn Ihr Server auf UTC eingestellt ist, Sie aber Ortszeit erwarten, laufen Aufgaben zu unerwarteten Zeiten.
Loesung:
# Systemzeitzone pruefen
timedatectl
# Zeitzone setzen
sudo timedatectl set-timezone Europe/Berlin
# Oder TZ in der Crontab fuer aufgabenspezifische Zeitzone setzen
TZ=Europe/Berlin
0 9 * * * /home/benutzer/morgenbericht.sh
Problem: Aufgabe wird ausgefuehrt, erzeugt aber keine Ausgabe
Ursache: Die Ausgabe wird an die lokale Mail gesendet, die niemand liest, oder die Ausgabe wird verworfen.
Loesung: Leiten Sie die Ausgabe in eine Logdatei um:
0 2 * * * /home/benutzer/backup.sh >> /var/log/backup.log 2>&1
Problem: Cron-Daemon laeuft nicht
Loesung:
# Status pruefen
sudo systemctl status cron
# Starten
sudo systemctl start cron
# Beim Booten aktivieren
sudo systemctl enable cron
Zusammenfassung
Cron ist das Rueckgrat der Automatisierung unter Linux. Mit fuenf einfachen Zeitfeldern und einem Befehl koennen Sie praktisch jede Aufgabe in jedem beliebigen Intervall planen. Die wichtigsten Punkte zum Merken sind:
- Verwenden Sie immer absolute Pfade fuer Befehle in Cron Jobs
- Escapen Sie Prozentzeichen (
\%) in Crontab-Eintraegen - Leiten Sie die Ausgabe um in Logdateien fuer Debugging und Audit
- Setzen Sie Umgebungsvariablen (insbesondere PATH) am Anfang Ihrer Crontab
- Sichern Sie Ihre Crontab bevor Sie Aenderungen vornehmen
- Pruefen Sie syslog (
grep CRON /var/log/syslog), wenn eine Aufgabe nicht wie erwartet laeuft - Beschraenken Sie den Zugang mit
/etc/cron.allowund/etc/cron.deny
Cron arbeitet Hand in Hand mit anderen Praktiken der Serveradministration. Um den Server abzusichern, auf dem Ihre Cron Jobs laufen, siehe die Linux Server Security Checklist und SSH Hardening: 12 Steps to Secure Your Linux Server.