Cron Expression Generator
Genereert cron-expressies visueel met een stap-voor-stap builder
Snelle voorinstellingen
Minuut
Uur
Dag van de maand
Maand
Dag van de week
Cron-expressie
0 9 * * *minute hour day(month) month day(week)
Wat is een cron-expressiegenerator?
Een cron-expressiegenerator is een tool die cron-planningsstrings opbouwt via een visuele interface, zonder dat u ze handmatig hoeft te schrijven. Cron-expressies zijn tekenreeksen met vijf velden (minuut, uur, dag van de maand, maand, dag van de week) die bepalen wanneer een terugkerende taak wordt uitgevoerd. Het formaat gaat terug op de originele Unix cron-daemon uit 1979 en wordt nu gebruikt in crontab, Kubernetes CronJobs, GitHub Actions, AWS EventBridge, Google Cloud Scheduler en tientallen taakplanningsbibliotheken.
Cron-expressies uit het hoofd schrijven is een veelvoorkomende bron van fouten. De vijf velden werken op niet voor de hand liggende manieren samen: een stapwaarde zoals */15 in het minutenveld levert uitvoeringen op 0, 15, 30 en 45, terwijl 5/15 begint op minuut 5 en oplevert 5, 20, 35, 50. Het combineren van dag-van-maand en dag-van-week met niet-wildcardwaarden creëert een OR-voorwaarde, geen AND — dit verrast zelfs ervaren engineers. Een visuele generator verwijdert deze dubbelzinnigheid door u het gewenste schema te laten selecteren en de juiste syntaxis automatisch te genereren.
Een cron-generator verschilt van een cron-parser. Een parser neemt een bestaande expressie en legt deze uit in gewone taal. Een generator werkt in de tegengestelde richting: u beschrijft het schema dat u nodig hebt, en de tool geeft de bijbehorende cron-string als uitvoer. Gebruik de generator bij het aanmaken van een nieuwe geplande taak; gebruik de parser bij het controleren of debuggen van bestaande taken.
Waarom deze cron-generator gebruiken?
Een cron-expressie handmatig bouwen vereist het onthouden van veldvolgorde, waardebereiken en operatorregels. Eén verkeerd geplaatst veld verandert een dagelijkse taak in een taak die elke minuut wordt uitgevoerd. Met deze generator kiest u uw schema visueel en kopieert u het resultaat met één klik.
Toepassingen van de cron-generator
Veelgebruikte cron-schemapresets
De onderstaande tabel geeft cron-expressies voor de meest gebruikte schema's. De meeste productieworkloads vallen in een van deze patronen. Pas afzonderlijke velden aan uw specifieke timing aan.
| Schema | Expressie | Typisch gebruik |
|---|---|---|
| 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 |
Bouwstenen van cron-expressies
Elke cron-expressie heeft precies vijf velden, van links naar rechts gelezen. Elk veld accepteert specifieke waarden en operators. Deze regels kennen is voldoende om elk schema te schrijven dat u in productie tegenkomt.
Vier operators bepalen hoe waarden worden vergeleken binnen elk veld. U kunt ze combineren: 1-5/2 in het dag-van-week-veld betekent maandag, woensdag, vrijdag (bereik 1-5, stapgrootte 2).
| Operator | Syntaxis | Voorbeeld | Resultaat |
|---|---|---|---|
| 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 |
Codevoorbeelden
Hoe cron-schema's aan te maken en te registreren in Node.js, Python, Go en 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