CRON — AUFGABENPLANUNG UNTER LINUX Backups 0 2 * * * backup.sh Bereinigung 0 3 * * 0 cleanup.sh Ueberwachung */5 * * * * check.sh SSL-Erneuerung 0 4 1 * * certbot Wiederkehrende Aufgaben mit praeziser zeitbasierter Planung automatisieren

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 (nano oder vim)

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

OperatorBedeutungBeispiel
*Beliebiger Wert* * * * * = jede Minute
,Liste von Werten1,15,30 * * * * = Minuten 1, 15, 30
-Wertebereich1-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:

ZeichenketteAequivalentBeschreibung
@rebootN/AEinmal beim Systemstart ausfuehren
@yearly0 0 1 1 *Einmal im Jahr (1. Januar, Mitternacht)
@monthly0 0 1 * *Einmal im Monat (1., Mitternacht)
@weekly0 0 * * 0Einmal pro Woche (Sonntag, Mitternacht)
@daily0 0 * * *Einmal taeglich (Mitternacht)
@hourly0 * * * *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 -r loescht sofort alle Ihre Cron Jobs ohne Bestaetigung und ohne Rueckgaengigmachen. Wenn Sie nur einen Eintrag entfernen moechten, verwenden Sie crontab -e und 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:

VerzeichnisHaeufigkeit
/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

  1. Das Skript muss ausfuehrbar sein: chmod +x /etc/cron.daily/meinskript
  2. Das Skript darf keine Dateiendung haben (.sh, .py, usw.) — run-parts ueberspringt auf vielen Systemen standardmaessig Dateien mit Punkten im Namen
  3. 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 anacron verwaltet, 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:

  1. Wenn /etc/cron.allow existiert, koennen nur dort aufgefuehrte Benutzer Cron verwenden
  2. Wenn /etc/cron.allow nicht existiert, aber /etc/cron.deny existiert, kann jeder ausser den aufgefuehrten Benutzern Cron verwenden
  3. 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

ZeitplanAusdruckBeschreibung
Jede Minute* * * * *Laeuft jede Minute jeden Tages
Alle 5 Minuten*/5 * * * *Laeuft zu den Minuten 0, 5, 10, 15, …
Stuendlich0 * * * *Laeuft zu Beginn jeder Stunde
Alle 6 Stunden0 */6 * * *Laeuft um 0:00, 6:00, 12:00, 18:00
Taeglich um Mitternacht0 0 * * *Laeuft einmal taeglich um 00:00
Taeglich um 2:3030 2 * * *Laeuft einmal taeglich um 02:30
Jeden Montag um 9 Uhr0 9 * * 1Laeuft woechentlich am Montagmorgen
Werktags um 8 Uhr0 8 * * 1-5Montag bis Freitag um 08:00
Erster des Monats0 0 1 * *Mitternacht am 1. jeden Monats
Vierteljaehrlich0 0 1 1,4,7,10 *Mitternacht am 1. Jan, Apr, Jul, Okt
Zweimal taeglich0 4,16 * * *Laeuft um 4:00 und 16:00
Alle 30 Minuten*/30 * * * *Laeuft um :00 und :30 jeder Stunde
Beim Neustart@rebootLaeuft 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.allow und /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.