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.
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
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.phpSalva ed esci. Usa
crontab -l per elencare tutti i tuoi cron job correnti.
* * * * *. 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.
*/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".
*, la maggior parte delle implementazioni cron esegue il job quando una qualsiasi delle condizioni è vera (logica OR), non entrambe.
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
date_default_timezone_set('Europe/Rome'); - ma il tempo di attivazione seguirà ancora il fuso orario cron del server.
$lock = fopen('/tmp/myjob.lock', 'c');
if (!flock($lock, LOCK_EX | LOCK_NB)) exit(0); // già in esecuzioneRilascia il lock quando il tuo script termina. Strumenti come flock (Linux), Symfony Lock o un lock basato su database funzionano bene per questo.