Zum Inhalt springen
Deploy
Dokumentation durchsuchen

Cronjobs auf deinem Server planen

Führe Befehle per Cron zu festen Zeiten auf deinem Server aus. Wähle eine Häufigkeit oder einen Cron-Ausdruck, starte Jobs sofort und lies ihr Log.

Als Markdown ansehen Aktualisiert am 7. Oktober 2026

Die Seite Scheduler eines Servers verwaltet seine geplanten Jobs: Befehle, die Cron zu festen Zeiten ausführt, etwa jede Minute, jede Nacht oder am Ersten des Monats. Nutze sie für den Laravel-Scheduler, für Aufräumskripte, für Berichte oder für alles andere, was nach Zeitplan laufen und sich danach beenden soll.

Jeder Job wird in eine eigene Datei in /etc/cron.d auf dem Server geschrieben. So lassen sich Jobs unabhängig voneinander hinzufügen und entfernen, ohne die Crontab von irgendjemandem anzufassen. Zeitpläne richten sich nach der Zeitzone des Servers, die oben auf der Seite steht und in den Servereinstellungen geändert werden kann.

Die Seite Scheduler mit den Standard-Jobs und einem Laravel-Scheduler-Job, der jede Minute läuft
Geplante Jobs auf einem Server

Einen Job planen

  1. Öffne den Server und wähle Scheduler in der Seitenleiste.
  2. Klicke auf Job planen.
  3. Gib den Befehl ein, zum Beispiel php /home/vimonto/example.com/current/artisan schedule:run.
  4. Gib optional einen Name ein, damit du den Job in der Liste wiedererkennst.
  5. Wähle unter Ausführen als, als wer er läuft: der Systembenutzer (standardmäßig vimonto) oder root.
  6. Wähle, Wann er läuft (siehe unten).
  7. Klicke auf Job planen.

Der Job steht auf Wird hinzugefügt, bis seine Cron-Datei geschrieben ist. Danach läuft er zum nächsten geplanten Zeitpunkt.

Der Befehl läuft über bash, daher funktionieren Pipes, && und Variablen so, wie du sie eingibst. Sonderzeichen von Cron wie % musst du nicht maskieren.

Welche Häufigkeiten kannst du wählen?

Häufigkeit Cron-Ausdruck Läuft
Jede Minute * * * * * Jede Minute.
Stündlich 0 * * * * Zu Beginn jeder Stunde.
Nächtlich 0 0 * * * Jeden Tag um Mitternacht.
Wöchentlich 0 0 * * 0 Jeden Sonntag um Mitternacht.
Monatlich 0 0 1 * * Am Ersten jedes Monats um Mitternacht.
Beim Neustart @reboot Einmal, bei jedem Start des Servers.
Eigener Zeitplan dein eigener Was du unter Zeitplan eingibst.

Einen eigenen Cron-Ausdruck schreiben

Wähle Eigener Zeitplan und gib unter Zeitplan fünf Felder ein: Minute, Stunde, Tag des Monats, Monat und Wochentag. Jedes Feld akzeptiert *, eine Zahl, einen Bereich (1-5), eine Schrittweite (*/15) und durch Kommas getrennte Listen.

Ausdruck Läuft
*/15 * * * * Alle 15 Minuten.
30 3 * * * Jede Nacht um 3:30 Uhr.
0 9 * * 1-5 An Werktagen um 9:00 Uhr.
0 */6 * * * Alle sechs Stunden.
0 2 1,15 * * Um 2:00 Uhr am 1. und am 15. des Monats.

Namen wie MON oder JAN und Kurzformen wie @daily werden in einem eigenen Zeitplan nicht akzeptiert; verwende stattdessen Zahlen.

Den Laravel-Scheduler ausführen

Der Scheduler von Laravel braucht einen Cronjob, der jede Minute schedule:run ausführt. Am einfachsten schaltest du den Scheduler für die Site auf ihrer Seite Queues und Scheduler ein: Vimonto Deploy legt den Job dann mit dem richtigen Pfad und Benutzer für dich an, und er erscheint in dieser Liste.

Wenn du ihn lieber von Hand hinzufügst, plane diesen Befehl Jede Minute als Systembenutzer:

php /home/vimonto/example.com/current/artisan schedule:run

Verwende das Verzeichnis current der Site, damit der Job immer den Code ausführt, der live ist. Ein Job, den die Site so anlegt, ist mit Über Scheduler markiert; siehe Jobs von Site-Features.

Einen Job sofort ausführen

Öffne das Aktionsmenü (⋯) eines Jobs und wähle Jetzt ausführen. Der Befehl läuft sofort als Benutzer des Jobs, aus dessen Home-Verzeichnis. Seine Ausgabe erscheint in der Aufgabe auf der Seite Aktivität. So testest du einen neuen Job am einfachsten.

Das Log lesen

Klicke neben einem Job auf Log, um die letzten 300 Zeilen zu sehen, die seine geplanten Läufe ausgegeben haben (Standardausgabe und Fehler zusammen), abgerufen vom Server, sobald du klickst. Jeder Lauf hängt seine Ausgabe an /var/log/vimonto/cron-{id}.log an, unter einer Zeile mit Datum und Uhrzeit seines Starts, etwa --- 2026-10-07T03:30:00+02:00. Gibt ein Job nichts aus, steht nur diese Zeile da, und du siehst trotzdem, dass er gelaufen ist.

Einmal am Tag wird ein Log, das größer als 5 MB ist, beiseitegelegt: Eine ältere Datei bleibt erhalten, alles Ältere wird gelöscht. So kann ein gesprächiger Job die Festplatte nicht füllen. Das Log wird gelöscht, wenn du den Job entfernst. Die Ausgabe von Jetzt ausführen landet nicht im Log; sie steht in der Aufgabe auf der Aktivitätsseite.

Was sind die Standard-Jobs?

Jeder Server wird mit zwei Jobs eingerichtet, die als Standard markiert sind:

Job Wann Was er tut
Composer aktualisieren Nächtlich Aktualisiert Composer auf die neueste Version.
Nicht verwendete Pakete aufräumen Wöchentlich Entfernt Pakete und zwischengespeicherte Paketdateien, die der Server nicht mehr braucht.

Beide laufen als root. Du kannst sie wie jeden anderen Job bearbeiten, ausführen oder entfernen.

Einen Job bearbeiten oder entfernen

Öffne das Aktionsmenü (⋯) und wähle Bearbeiten, um Befehl, Name, Benutzer oder Zeitplan zu ändern; Speichern schreibt die Cron-Datei neu. Wähle Entfernen, um den Job zu löschen; er läuft dann nicht mehr.

Wenn das Schreiben eines Jobs fehlschlägt, steht er auf Fehlgeschlagen; wähle dann Erneut versuchen im Aktionsmenü.

Jobs von Site-Features

Jobs, die ein Site-Feature angelegt hat, etwa der Laravel-Scheduler oder Echter Cron für WordPress, tragen ein Badge Über …, zum Beispiel Über Scheduler. Hier kannst du ihr Log lesen und sie Jetzt ausführen, aber Bearbeiten, Erneut versuchen und Entfernen werden nicht angeboten: Ändere sie über das Feature im Site-Header und schalte das Feature aus, um seinen Job zu entfernen.

Erfahren, wenn ein geplanter Job nicht mehr läuft

Cron sagt dir nicht, wenn ein Job fehlschlägt oder nicht mehr läuft. Nutze dafür einen Heartbeat: Klicke auf der Seite Monitoring auf Heartbeat hinzufügen und lass den Job die URL des Heartbeats aufrufen, wenn er fertig ist, zum Beispiel indem du den Befehl mit && curl -fsS https://… beendest (die URL, die beim Heartbeat angezeigt wird). Kommt der Ping nicht innerhalb des eingestellten Intervalls und der Karenzzeit, schickt Vimonto Deploy eine E-Mail an die Adresse unter Benachrichtigen und benachrichtigt die Mitglieder der Organisation, mit einer E-Mail pro Person; siehe wer benachrichtigt wird.

Häufig gestellte Fragen

In welcher Zeitzone laufen Jobs?

In der Zeitzone des Servers, die oben auf der Seite Scheduler steht. Ändere sie in den Servereinstellungen; die Jobs folgen dann der neuen Zeitzone.

Warum läuft mein Job nicht?

Öffne sein Log, um zu sehen, was die letzten geplanten Läufe ausgegeben haben, oder klicke auf Jetzt ausführen und lies die Ausgabe auf der Aktivitätsseite. Häufige Ursachen sind ein relativer Pfad (verwende vollständige Pfade oder wechsle zuerst mit cd in das Verzeichnis), ein Befehl, der einen anderen Benutzer braucht, oder ein eigener Zeitplan, der nicht das tut, was du gemeint hast. Cron verwendet einen kurzen PATH (/usr/local/sbin, /usr/local/bin, /usr/sbin, /usr/bin, /sbin und /bin).

Was ist der Unterschied zwischen einem geplanten Job und einem Prozess?

Ein geplanter Job startet zu festen Zeiten und beendet sich, wenn er fertig ist. Ein Prozess läuft ständig und wird von Supervisor neu gestartet, wenn er stoppt. Verwende einen Prozess für Queue-Worker und einen geplanten Job für Aufgaben wie den Laravel-Scheduler.

Kann ein Job öfter als jede Minute laufen?

Nein. Das kleinste Intervall von Cron ist eine Minute. Für Arbeit, die ununterbrochen laufen muss, verwende einen Prozess.