Strumenti per sviluppatori · Generatore di Crontab
Come funzionano i cinque campi del crontab: minuto, ora, giorno, mese, giorno della settimana
· Come funziona
cron pianificazione flusso di lavoro dello sviluppatore
Ogni pianificazione cron è composta da cinque campi posizionali e l'ordine non cambia mai. Questo post spiega l'intervallo di ciascun campo, il caso speciale della domenica e come una riga diventa un insieme di minuti corrispondenti.
Un backup che deve essere eseguito alle 02:30 ogni notte e cinque stelle che non sai come riempire
Hai bisogno di un backup alle 02:30 di notte, ma continua a mescolare quale delle cinque stelle possiede l'ora. Cron è posizionale: un numero nella colonna sbagliata produce una pianificazione diversa pur apparendo superficialmente valida. Inizia con l’ora in cui deve essere eseguito il lavoro, il fuso orario della macchina e chi possiede il crontab; solo allora compila i campi. ToolAcre può analizzare e descrivere un'espressione, ma non installa il processo né esegue il comando di backup.
Campi posizionali, ordine fisso: minuto, ora, giorno del mese, mese, giorno della settimana, quindi il comando
Una riga crontab dell'utente contiene minuti, ore, giorno del mese, mese, giorno della settimana, quindi un comando. In 30 2 * * * backup.sh, 30 è il minuto e 2 è l'ora: 02:30 ogni giorno nel fuso orario dell'ambiente cron. Il comando non è un sesto campo temporale. /etc/crontab a livello di sistema può includere un campo utente prima del comando, motivo per cui copiare ciecamente una voce di sistema nel tuo crontab personale può eseguire un comando indesiderato.
Intervalli di ciascun campo: 0–59, 0–23, 1–31, 1–12 e 0–7, con 0 e 7 significano entrambi domenica nella maggior parte dei cron
I minuti accettano 0–59, ore 0–23, giorno del mese 1–31, mese 1–12 e giorno della settimana 0–7 nei modelli ToolAcre convenzioni in stile Vixie; 0 e 7 significano domenica. Un asterisco indica tutti i valori in quel campo. Gli intervalli e gli elenchi separati da virgole possono limitare i valori, ma si applica comunque l'intervallo numerico di un campo. 25 nella posizione dell'ora non è un programma a tarda notte: non è valido e dovrebbe essere segnalato anziché spostato al giorno successivo.
Come funziona la corrispondenza: cron si attiva ogni minuto ed esegue una riga se i campi dell'ora corrispondono (con un'eccezione per i campi dei due giorni)
Cron controlla i campi corrispondenti ogni minuto. Minuto, ora e mese devono corrispondere. I campi dei due giorni hanno una regola speciale in Vixie cron: quando sia il giorno del mese che il giorno della settimana sono limitati, una corrispondenza su uno dei due può attivare il lavoro, non necessariamente su entrambi. Pertanto 0 0 13 * 5 significa il tredici di un mese o ogni venerdì, non solo venerdì tredici. Con i caratteri jolly nelle posizioni diurne, l'esempio notturno si comporta come previsto. L’output esplicativo dello strumento rende visibile tale scelta prima dell’installazione.
Esempio pratico: 30 2 * * * backup.sh — leggerlo ad alta voce, quindi scrivere "giorni feriali alle 08:15" da zero
Leggi 30 2 * * * backup.sh ad alta voce come “esegui backup.sh alle 02:30 ogni giorno”. Per i giorni feriali alle 08:15, inserire i minuti 15, le ore 8, i giorni senza restrizioni/month e i giorni feriali 1–5: 15 8 * * 1-5. Incolla solo i cinque campi della pianificazione nel generatore Crontab e controlla la sua descrizione e l'elenco della prossima esecuzione; successivamente installa il comando utilizzando il tuo editor crontab. Per un backup eseguito in prossimità di un cambio dell'ora legale, verificare i timestamp dell'esecuzione successiva nella zona effettiva anziché presupporre che esista ogni 02:30 locale.
Nomi per mesi e giorni feriali, inclusi intervalli di nomi supportati
Molti dialetti cron accettano nomi di tre lettere come JAN o MON invece dei numeri. I nomi possono rendere più chiara una pianificazione gestita dall'uomo, ma l'utilizzo di 0/7 per la domenica rimane comune e altre implementazioni di cron potrebbero avere estensioni diverse. ToolAcre riconosce nomi e intervalli comuni di mesi e giorni della settimana come JAN-MAR e MON-FRI; il suo parser accetta 15 8 * JAN-MAR MON-FRI. Un'altra implementazione cron o uno scheduler cloud potrebbe utilizzare un numero diverso di campi o estensioni, quindi consulta la grammatica di quell'ambiente prima di installare la linea.
Ciò che questa panoramica non copre completamente: elenchi, passaggi e ambiente di esecuzione
Questa introduzione spiega la regola OR del campo giornaliero di Vixie ma non esplora le sue complicate combinazioni con elenchi e passaggi, la shell/environment che esegue il comando o il comportamento dell'ora legale; ognuno può cambiare se viene eseguita un'attività reale. Il validatore può descrivere una pianificazione ma non può garantire che backup.sh esista, abbia l'autorizzazione o abbia scritto backup ripristinabili. Testare un backup e un ripristino prima di fare affidamento su una voce cron di produzione.
Conclusione: cinque campi, una grammatica e il generatore Crontab costruisce l'espressione e te la spiega
Cinque posizioni formano una grammatica. Il generatore di Crontab legge la pianificazione proposta, assegna un nome a ciascun campo e mostra le prossime esecuzioni in una zona scelta senza installare nulla sul tuo sistema. Inserisci gli esempi notturni e feriali, confronta ciò che dice lo strumento con ciò che intendevi, quindi mantieni il comando e la decisione sul fuso orario con la documentazione operativa del lavoro.