# Cron Job Helper — Beispiele

> Konkrete Cron-Ausdrücke mit Erklärung: täglich, alle 15 Minuten, werktags, monatlich und @reboot — plus ein CMS- und ein Docker-Beispiel aus dem Cron Job Helper.

Source: https://www.jpkc.com/db/tools/cron/examples/

Zurück zur Übersicht: [Cron Job Helper](https://www.jpkc.com/db/tools/cron/) · Tool live öffnen: [www.jpkc.com/tools/cron/](https://www.jpkc.com/tools/cron/)

Das [Manual](https://www.jpkc.com/db/tools/cron/manual/) erklärt jeden Reiter im Detail. Diese Seite zeigt **konkrete Ausdrücke** — was sie bedeuten, wie du sie im *Builder* zusammenklickst und worauf du beim Lesen der *Next Scheduled Runs* achtest. Die Oberfläche ist auf Englisch; Feld- und Button-Namen stehen deshalb im Original.

## Beispiel 1: Täglich um 3 Uhr nachts

Der Klassiker für Backups und Wartung — laufen lassen, wenn wenig los ist.

```
0 3 * * *
```

So baust du ihn: Im *Builder* setzt du **Minute** auf *Specific value* `0`, **Hour** auf *Specific value* `3`, die übrigen drei Felder bleiben auf *Every*. Schneller geht es über den Preset **Daily 3 AM**. Die Klartext-Zeile bestätigt „at 3:00", und die *Next Scheduled Runs* zeigen den jeweils nächsten 03:00-Termin. Lies: Minute 0, Stunde 3, jeden Tag, jeden Monat, jeden Wochentag.

## Beispiel 2: Alle 15 Minuten

Typisch für Queue-Worker, Web-Cron-Aufrufe oder Scheduler-Anstöße.

```
*/15 * * * *
```

Im *Builder* stellst du **Minute** auf *Every N Minutes (*/N)* und trägst `15` ein — oder klickst den Preset **Every 15 min**. Das `*/15` heißt „alle 15 Einheiten", die Minuten 0, 15, 30 und 45 jeder Stunde. Achtung beim Schrittwert: `*/15` rechnet vom Feld-Minimum (0) aus, nicht ab „jetzt".

## Beispiel 3: Werktags zur vollen Stunde während der Bürozeit

Nur Montag bis Freitag, nur 9–17 Uhr — z. B. für Aufgaben, die an Mitarbeitende oder Kundinnen gekoppelt sind.

```
0 9-17 * * 1-5
```

Hier kombinierst du zwei Modi: **Hour** auf *Range (A–B)* mit `9`–`17` und **Day of Week** auf *Range (A–B)* mit `1`–`5` (Montag = 1, Freitag = 5). **Minute** steht auf `0`. Ergebnis: zur vollen Stunde, von 9 bis 17 Uhr, an Werktagen. Wer nur **einmal** werktags will (etwa 08:30), nimmt `30 8 * * 1-5`.

## Beispiel 4: Monatlich am 1. um 4 Uhr

Monatsabschlüsse, Reports, Log-Rotation.

```
0 4 1 * *
```

**Minute** `0`, **Hour** `4`, **Day of Month** *Specific value* `1`, Monat und Wochentag bleiben `*`. Das läuft am ersten Tag jedes Monats um 04:00. Verwandt: der Preset **Monthly 1st** (`0 0 1 * *`) für Mitternacht, oder `@monthly` als Spezialstring im *Manual Input*.

## Beispiel 5: Einmal beim Systemstart — @reboot

Manche Jobs sollen nicht zu einer Uhrzeit, sondern **einmalig beim Hochfahren** starten — etwa einen Worker oder ein Aufräum-Skript anstoßen.

```
@reboot
```

Tippe `@reboot` in das *Manual Input*-Feld. Das Tool erkennt den Spezialstring und zeigt in den *Next Scheduled Runs* keine Termine, sondern den Hinweis, dass der Job nur beim Systemstart läuft — denn `@reboot` hat keinen wiederkehrenden Zeitplan, den man in die Zukunft rechnen könnte. Anders als die übrigen `@`-Strings lässt sich `@reboot` deshalb auch nicht in fünf Felder auflösen.

## Beispiel 6: Wochenende um Mitternacht

Samstag und Sonntag, jeweils 00:00 — über eine **Liste** im Wochentag-Feld.

```
0 0 * * 6,0
```

**Day of Week** auf *List (A,B,C)* mit `6,0` (Samstag = 6, Sonntag = 0), Minute und Stunde auf `0`. Der Preset **Weekends** setzt genau das. Die Liste `6,0` zeigt schön, dass Sonntag sowohl als `0` als auch in manchen Crons als `7` notiert werden kann — das Tool nutzt die `0`-Schreibweise.

## CMS-Beispiel: WordPress über einen echten Cron statt WP-Cron

WordPress' eingebautes **WP-Cron** feuert nur bei Seitenaufrufen und ist auf traffic-schwachen Seiten unzuverlässig. Der *CMS & Frameworks*-Tab zeigt den robusten Weg.

Schritt 1 — WP-Cron in `wp-config.php` abschalten:

```
define( 'DISABLE_WP_CRON', true );
```

Schritt 2 — alle 5 Minuten einen echten Cron via WP-CLI eintragen:

```
*/5 * * * *  www-data  wp cron event run --due-now --path=/var/www/html --quiet
```

Beachte die Felder einer System-Crontab-Zeile (z. B. in `/etc/cron.d/`): Zeitplan, dann **Benutzer** (`www-data`), dann Befehl. Der WP-CLI-Weg ist schneller als ein curl-Aufruf, weil er keinen HTTP-Request braucht. Falls du doch curl willst, liefert der Tab die Alternative auf `wp-cron.php`.

## Docker-Beispiel: Cron in einem DDEV-Projekt

Im *Docker / DDEV*-Tab steht der einfachste DDEV-Weg: ein Host-Cron, der per `ddev exec` in den laufenden Container ruft.

```
*/5 * * * *  cd /home/user/myproject && ddev exec php artisan schedule:run >> /dev/null 2>&1
```

Wichtig: `ddev exec` funktioniert nur, wenn das Projekt läuft (`ddev start`) — sonst schlägt die Zeile fehl. Für einen dauerhaften Lauf unabhängig vom Host-Cron zeigt der Tab als empfohlene Variante einen eigenen DDEV-Service in `.ddev/docker-compose.cron.yaml` mit einer `while true; … sleep 60`-Schleife. Für WordPress in DDEV gibt es die fertige Zeile `ddev wp cron event run --due-now`.

---

Mehr Kontext: die [Übersicht](https://www.jpkc.com/db/tools/cron/) zum großen Bild, das [Manual](https://www.jpkc.com/db/tools/cron/manual/) für jeden Reiter und die [Tipps & Tricks](https://www.jpkc.com/db/tools/cron/tips/) für die Stolperfallen. Ausprobieren kannst du alles direkt im [Tool](https://www.jpkc.com/tools/cron/).

