- Veröffentlicht am
- • How2-Tipps
Debian: „crontab: command not found“ – Ursache und Lösung Schritt für Schritt
- Autor
-
-
- Benutzer
- tmueller
- Beiträge dieses Autors
- Beiträge dieses Autors
-
Wer auf einem Debian-Server einen Cronjob einrichten möchte und plötzlich folgende Fehlermeldung erhält:
crontab: command not found
steht meist vor einem einfachen, aber unerwarteten Problem: Der Cron-Dienst ist gar nicht installiert.
Gerade bei Minimal-Installationen, Cloud-Servern oder VPS-Systemen ist das völlig normal – Debian installiert Cron nicht automatisch.
In diesem Artikel zeige ich dir:
- Warum der Fehler auftritt
- Wie du Cron korrekt installierst
- Wie du den Dienst aktivierst
- Wie du prüfst, ob alles funktioniert
- Und worauf du bei Minimal-Systemen achten solltest
Warum erscheint „crontab: command not found“?
Die Meldung bedeutet schlicht:
Das System kennt den Befehl
crontabnicht.
Das kann zwei Ursachen haben:
- Das Paket cron ist nicht installiert
- Der Binary-Pfad ist nicht im
$PATH(sehr selten)
In 99 % der Fälle ist es Punkt 1.
Viele Debian-Server (z. B. Netinstall, Cloud Images, LXC, Docker-Container) sind bewusst minimal gehalten und enthalten keinen Cron-Dienst.
Schritt 1 – Prüfen, ob Cron installiert ist
Zunächst kannst du testen:
which crontab
Wenn keine Ausgabe erscheint, ist Cron nicht vorhanden.
Alternativ:
dpkg -l | grep cron
Schritt 2 – Cron unter Debian installieren
Installation erfolgt ganz normal über apt:
sudo apt update
sudo apt install cron
Das Paket enthält:
- den Cron-Dienst
- das Kommando
crontab - die System-Verzeichnisse unter
/etc/cron.*
Schritt 3 – Dienst starten und aktivieren
Nach der Installation sollte der Dienst automatisch starten. Zur Sicherheit:
sudo systemctl enable cron
sudo systemctl start cron
Status prüfen:
systemctl status cron
Wenn alles korrekt läuft, siehst du:
Active: active (running)
Schritt 4 – Funktion testen
Jetzt kannst du prüfen:
crontab -l
Wenn noch kein Cronjob existiert, erscheint:
no crontab for user
Das ist korrekt und kein Fehler.
Schritt 5 – Test-Cronjob anlegen
Zum Test kannst du einen einfachen Job anlegen:
crontab -e
Beispiel-Eintrag:
* * * * * echo "Cron funktioniert" >> /tmp/cron_test.log
Das bedeutet:
- Jede Minute wird ein Text in die Datei
/tmp/cron_test.loggeschrieben.
Nach 1–2 Minuten prüfen:
cat /tmp/cron_test.log
Wenn dort Einträge erscheinen → alles funktioniert.
Wichtige Hinweise bei Minimal-Systemen
1️⃣ Cron ist nicht Standard bei Minimal-Installationen
Gerade bei:
- Debian Netinstall
- VPS-Images
- LXC-Containern
- Docker
- Cloud-Servern (Hetzner, AWS, DigitalOcean)
wird Cron oft nicht vorinstalliert.
Das ist kein Fehler – sondern Absicht.
2️⃣ Alternative: systemd Timer
Moderne Debian-Versionen bieten zusätzlich:
systemd timers
Diese ersetzen klassische Cronjobs und sind teilweise robuster und besser integrierbar.
Für klassische Webserver-Setups (PHP, Laravel, Wartungsskripte) ist Cron jedoch weiterhin völlig ausreichend und etabliert.
3️⃣ Root vs. Benutzer-Crontab
Es gibt zwei Varianten:
Benutzer-Crontab:
crontab -e
Systemweite Cronjobs:
/etc/crontab
/etc/cron.d/
Für Webanwendungen ist meist die Benutzer-Crontab des Webserver-Users oder root ausreichend.
Typische Fehlerquellen
| Problem | Ursache |
|---|---|
| Job läuft nicht | falscher Pfad |
| Script funktioniert manuell, aber nicht per Cron | fehlende Umgebungsvariablen |
| PHP-Fehler | falsche PHP-Version |
| Keine Logs | Ausgabe nicht umgeleitet |
Beispiel für saubere PHP-Ausführung:
* * * * * /usr/bin/php /var/www/app/cron_runner.php >> /var/log/cron_runner.log 2>&1
Fazit
Die Meldung
crontab: command not found
ist unter Debian kein Drama – sondern meist nur ein Hinweis darauf, dass der Cron-Dienst noch nicht installiert wurde.
Mit:
sudo apt install cron
ist das Problem in wenigen Sekunden behoben.
Gerade bei Minimal-Servern solltest du Cron immer bewusst installieren und aktivieren, wenn du:
- Backups automatisieren willst
- PHP-Scheduler einsetzt
- Laravel Tasks nutzt
- Wartungsskripte regelmäßig ausführen musst
- Monitoring betreibst