Der Cron-Ausdruck 0 0 1 * * führt am 1. jedes Monats um Mitternacht aus. @monthly Abkürzung, Lösung für den letzten Monatstag und Schaltjahres-Eckfälle.
⏰At 12:00 AM, on day 1 of the month
*Beliebiger Wert,Listentrennzeichen-Bereich/Schritt1-5Bereich 1 bis 5*/15Alle 15 EinheitenDer Cron-Ausdruck 0 0 1 * * wird in Minute 0, Stunde 0, am Tag 1 jedes Monats ausgelöst, unabhängig davon, welcher Monat oder welches Jahr es ist. Der Job läuft um Mitternacht am 1. Januar, 1. Februar, 1. März und so weiter, genau 12 Mal pro Jahr.
| Feld | Wert | Bedeutung |
|---|---|---|
| Minute | 0 |
Zu Beginn der Stunde |
| Stunde | 0 |
Mitternacht |
| Tag des Monats | 1 |
Der 1. Tag des Monats |
| Monat | * |
Jeden Monat |
| Wochentag | * |
Jeden Tag |
@monthly ist die Kurzform für 0 0 1 * *:
@monthly /opt/jobs/billing-cycle
# gleichbedeutend mit:
0 0 1 * * /opt/jobs/billing-cycle
Wenn du einen Job auf Tag 29, 30 oder 31 planst, wird er für Monate, die diese Tage nicht haben, stillschweigend übersprungen:
| Ausdruck | Übersprungene Monate |
|---|---|
0 0 29 * * |
Februar (in den meisten Jahren) |
0 0 30 * * |
Februar |
0 0 31 * * |
Feb, Apr, Jun, Sep, Nov |
0 0 29 * * überspringt den Februar in Nicht-Schaltjahren vollständig.
Praktische Lösung: Führe den Job täglich aus und prüfe das Datum im Skript:
#!/bin/bash
if [ "$(date -d tomorrow +%d)" != "01" ]; then
exit 0
fi
# eigentliche Job-Logik hier
Rechnungen generieren, Abonnementverlängerungen verarbeiten oder nutzungsbasierte Gebühren neu berechnen.
Finanz-, Verkaufs- und Betriebsberichte, die Daten des Vormonats zusammenfassen.
Daten, die älter als ein Monat sind, in Kaltlagerung verschieben.
API-Schlüssel, Aktualisierungstokens oder Geheimnisse in monatlichem Rhythmus rotieren.
from croniter import croniter
from datetime import datetime
cron = croniter("0 0 1 * *", datetime.now())
for _ in range(5):
print(cron.get_next(datetime))
0 0 * * * für tägliche Jobs0 0 * * 1-5 für Montag-bis-Freitag-ZeitpläneNothing you paste leaves this tab. Every tool runs entirely in your browser — no upload, no server, no account.