Cron Expression Generator
Erstellt Cron-Ausdrücke visuell mit einem schrittweisen Builder
Schnellvoreinstellungen
Minute
Stunde
Monatstag
Monat
Wochentag
Cron-Ausdruck
0 9 * * *minute hour day(month) month day(week)
Was ist ein Cron Expression Generator?
Ein Cron Expression Generator ist ein Werkzeug, das Cron-Zeitplan-Strings über eine visuelle Oberfläche erstellt, ohne dass du sie von Hand schreiben musst. Cron-Ausdrücke sind fünffelderbasierte Strings (Minute, Stunde, Monatstag, Monat, Wochentag), die festlegen, wann ein wiederkehrender Task ausgeführt werden soll. Das Format geht auf den ursprünglichen Unix-cron-Daemon von 1979 zurück und wird heute in crontab, Kubernetes CronJobs, GitHub Actions, AWS EventBridge, Google Cloud Scheduler und zahlreichen Job-Scheduling-Bibliotheken verwendet.
Cron-Ausdrücke aus dem Gedächtnis zu schreiben ist eine häufige Fehlerquelle. Die fünf Felder interagieren auf nicht offensichtliche Weise: Ein Schrittwert wie */15 im Minutenfeld erzeugt Ausführungen bei 0, 15, 30 und 45, während 5/15 bei Minute 5 beginnt und 5, 20, 35, 50 ergibt. Die Kombination von Monatstag und Wochentag mit Nicht-Wildcard-Werten erzeugt eine ODER-Bedingung, keine UND-Bedingung — was selbst erfahrene Entwickler überrascht. Ein visueller Generator beseitigt diese Unklarheit, indem er dich den gewünschten Zeitplan auswählen lässt und die korrekte Syntax automatisch erzeugt.
Ein Cron-Generator unterscheidet sich von einem Cron-Parser. Ein Parser nimmt einen vorhandenen Ausdruck und erklärt ihn in verständlicher Sprache. Ein Generator arbeitet in die entgegengesetzte Richtung: Du beschreibst den benötigten Zeitplan, und das Werkzeug gibt den passenden Cron-String aus. Verwende den Generator beim Erstellen eines neuen geplanten Jobs; verwende den Parser beim Prüfen oder Debuggen vorhandener Jobs.
Warum diesen Cron-Generator verwenden?
Einen Cron-Ausdruck von Hand zu erstellen bedeutet, Feldreihenfolge, Wertebereiche und Operatorregeln auswendig zu lernen. Ein einziges falsch platziertes Feld verwandelt einen täglichen Job in einen, der jede Minute läuft. Dieser Generator ermöglicht es dir, deinen Zeitplan visuell auszuwählen und das Ergebnis mit einem Klick zu kopieren.
Anwendungsfälle für den Cron-Generator
Häufige Cron-Zeitplan-Voreinstellungen
Die folgende Tabelle listet Cron-Ausdrücke für die am häufigsten verwendeten Zeitpläne auf. Die meisten Produktions-Jobs fallen in eines dieser Muster. Passe einzelne Felder an dein tatsächliches Timing an.
| Zeitplan | Ausdruck | Typische Verwendung |
|---|---|---|
| Every minute | * * * * * | Health checks, queue polling |
| Every 5 minutes | */5 * * * * | Metrics collection, cache refresh |
| Every 15 minutes | */15 * * * * | API sync, dashboard updates |
| Every hour | 0 * * * * | Log rotation, report generation |
| Every 6 hours | 0 */6 * * * | Database backups, digest emails |
| Daily at midnight | 0 0 * * * | Nightly batch jobs, cleanup scripts |
| Daily at 9 AM | 0 9 * * * | Daily reports, notification digests |
| Weekdays at 9 AM | 0 9 * * 1-5 | Business-hours tasks, standup reminders |
| Every Monday at midnight | 0 0 * * 1 | Weekly reports, dependency updates |
| First of every month | 0 0 1 * * | Billing runs, monthly aggregation |
| Every Sunday at 2:30 AM | 30 2 * * 0 | Full backups during low-traffic window |
| January 1st at midnight | 0 0 1 1 * | Annual reports, license renewals |
Aufbau von Cron-Ausdrücken
Jeder Cron-Ausdruck hat genau fünf Felder, die von links nach rechts gelesen werden. Jedes Feld akzeptiert bestimmte Werte und Operatoren. Diese Regeln zu kennen reicht aus, um jeden Zeitplan zu schreiben, der in der Produktion vorkommt.
Vier Operatoren steuern, wie Werte innerhalb jedes Feldes abgeglichen werden. Du kannst sie kombinieren: 1-5/2 im Wochentag-Feld bedeutet Montag, Mittwoch, Freitag (Bereich 1-5, Schritt 2).
| Operator | Syntax | Beispiel | Ergebnis |
|---|---|---|---|
| Wildcard | * | * (minute) | Every minute |
| List | a,b,c | 1,15 (day) | 1st and 15th |
| Range | a-b | 9-17 (hour) | 9 AM through 5 PM |
| Step | */n | */10 (minute) | Every 10 minutes |
| Range+Step | a-b/n | 10-30/5 (min) | 10, 15, 20, 25, 30 |
Code-Beispiele
So erstellst und registrierst du Cron-Zeitpläne in Node.js, Python, Go und bash:
import { CronJob } from 'cron';
// Build a cron expression: every weekday at 9:00 AM
const expression = '0 9 * * 1-5';
const job = new CronJob(expression, () => {
console.log('Running weekday morning task');
});
job.start();
// Programmatic expression building
function buildCron({ minute = '*', hour = '*', dom = '*', month = '*', dow = '*' }) {
return `${minute} ${hour} ${dom} ${month} ${dow}`;
}
const expr = buildCron({ minute: '0', hour: '*/6', dow: '1-5' });
console.log(expr); // → "0 */6 * * 1-5"from crontab import CronTab
# Create a new cron job for the current user
cron = CronTab(user=True)
# Build a job: run backup.py every day at 2:30 AM
job = cron.new(command='python3 /home/user/backup.py')
job.setall('30 2 * * *')
print(job) # → 30 2 * * * python3 /home/user/backup.py
print(job.is_valid()) # → True
# Schedule every 15 minutes on weekdays
job2 = cron.new(command='/usr/bin/sync-data')
job2.minute.every(15)
job2.dow.during('MON', 'FRI')
cron.write() # Save to user's crontab
# Verify next run time
from croniter import croniter
from datetime import datetime
it = croniter('30 2 * * *', datetime.now())
print(it.get_next(datetime)) # → next 2:30 AM timestamppackage main
import (
"fmt"
"strings"
"github.com/robfig/cron/v3"
)
// BuildCron constructs a 5-field cron expression from parts
func BuildCron(minute, hour, dom, month, dow string) string {
fields := []string{minute, hour, dom, month, dow}
return strings.Join(fields, " ")
}
func main() {
// Generate: every weekday at 9 AM
expr := BuildCron("0", "9", "*", "*", "1-5")
fmt.Println(expr) // → 0 9 * * 1-5
// Validate and schedule it
c := cron.New()
_, err := c.AddFunc(expr, func() {
fmt.Println("Running scheduled task")
})
if err != nil {
fmt.Printf("Invalid expression: %v\n", err)
return
}
c.Start()
}# Open the crontab editor to add a new job crontab -e # Add a cron job without opening an editor: # Run cleanup.sh every Sunday at 3 AM (crontab -l 2>/dev/null; echo "0 3 * * 0 /home/user/cleanup.sh") | crontab - # Generate and add a job: every 10 minutes, log disk usage EXPR="*/10 * * * *" CMD="df -h >> /var/log/disk-usage.log" (crontab -l 2>/dev/null; echo "$EXPR $CMD") | crontab - # Verify the job was added crontab -l | tail -1 # → */10 * * * * df -h >> /var/log/disk-usage.log # Remove all cron jobs (use with caution) # crontab -r