Salta al contenuto principale
Strumenti per Sviluppatori

Generatore di Cron Job

Costruisci e comprendi le espressioni cron visivamente. Seleziona il tuo programma, ottieni l'espressione e una spiegazione in italiano chiaro - con i prossimi orari di esecuzione calcolati istantaneamente nel tuo browser.

Importa espressione: ⚠ Non valida - devono essere 5 parti separate da spazi
Preset rapidi
Minuto
*
Ora
*
Giorno
*
Mese
*
Giorno settimana
*
Espressione generata
* · * · * · * · *
In italiano
Ogni minuto, tutto il giorno, ogni giorno
Prossimi 5 orari di esecuzione
Caricamento…

Cos'è un Cron Job?

Un cron job è un pianificatore di attività basato sul tempo nei sistemi Unix-like. Esegue comandi o script automaticamente a intervalli specificati - da ogni minuto a una volta all'anno - senza alcun intervento manuale.

Formato Espressione Cron

Un'espressione cron ha 5 campi separati da spazi: minuto ora giorno mese giorno_settimana. Ogni campo accetta un valore specifico, carattere jolly *, step */N, intervallo N-M o lista N,M.

Casi d'uso comuni

I cron job alimentano backup di database, cancellazione cache, rotazione log, generazione report, digest email, health check, rigenerazione sitemap e qualsiasi attività che deve essere eseguita con pianificazione ricorrente.

Caratteri speciali

* = qualsiasi valore  ·  */N = ogni N unità  ·  N-M = intervallo da N a M  ·  N,M = N e M  ·  ? = nessun valore specifico (alcuni sistemi)

Esempi Cron comuni

Espressione Descrizione Azione

Domande frequenti

Esegui crontab -e nel tuo terminale per aprire l'editor cron. Aggiungi una nuova riga con la tua espressione seguita dal comando da eseguire, ad esempio:

0 2 * * * /usr/bin/php /var/www/backup.php

Salva ed esci. Usa crontab -l per elencare tutti i tuoi cron job correnti.
L'intervallo minimo con cron standard è 1 minuto - espresso come * * * * *. Se hai bisogno di precisione sub-minuto, puoi concatenare più comandi all'interno di un cron job (es. eseguire uno script ogni 30 secondi usando sleep 30 tra le chiamate), o usare un gestore di processi come Supervisor.
La notazione */N significa "ogni N unità". Quindi */5 nel campo minuto significa "ogni 5 minuti" (0, 5, 10, 15… 55). */2 nel campo ora significa "ogni 2 ore". Il * sulla sinistra significa "a partire dal valore minimo di quel campo".
Giorno del Mese (campo 3) è la data del calendario: 1 = 1º, 15 = 15º, 31 = 31º. Giorno della Settimana (campo 5) è il nome del giorno: 0 = Domenica, 1 = Lunedì, …, 6 = Sabato. Quando entrambi i campi sono impostati su qualcosa di diverso da *, la maggior parte delle implementazioni cron esegue il job quando una qualsiasi delle condizioni è vera (logica OR), non entrambe.
Usa l'intervallo 1-5 nel campo Giorno della Settimana, dove 1 = Lunedì e 5 = Venerdì. Esempio - esegui alle 9:00 ogni giorno feriale:

0 9 * * 1-5
Cron standard viene eseguito nel fuso orario locale del sistema. I sistemi moderni (systemd timers, AWS EventBridge, ecc.) consentono impostazioni del fuso orario per job. Per applicazioni PHP, puoi anche impostare il fuso orario all'inizio del tuo script: date_default_timezone_set('Europe/Rome'); - ma il tempo di attivazione seguirà ancora il fuso orario cron del server.
Usa un lock di file o mutex nel tuo script. In PHP:

$lock = fopen('/tmp/myjob.lock', 'c');
if (!flock($lock, LOCK_EX | LOCK_NB)) exit(0); // già in esecuzione


Rilascia il lock quando il tuo script termina. Strumenti come flock (Linux), Symfony Lock o un lock basato su database funzionano bene per questo.
Copiato!