Strumenti per sviluppatori · Generatore di Crontab
Esempi di espressioni Cron: orario, notte, giorni feriali, primo del mese
· Come funziona
cron esempi pianificazione
Dieci programmi coprono la maggior parte dei crontab reali. Questo post fornisce l'espressione per ciascuno, spiega i campi e sottolinea quello che le persone quasi sempre sbagliano.
Hai bisogno di "primo del mese alle 06:00" e i risultati della ricerca non sono d'accordo: una serie di espressioni verificate con ragionamento
Una risposta copiata per "il primo del mese alle 06:00" è utile solo se ogni posizione può essere giustificata. Nell'ordine di cinque campi, `0 6 1 * *` significa minuto zero, ora sei, giorno del mese uno, ogni mese e ogni giorno della settimana. La lettura dei campi impedisce che un esempio interessante diventi una dipendenza dalla produzione inspiegabile.
Gli esempi qui riportati rientrano nell'ambito della grammatica esercitata dal parser e dai test di ToolAcre. Si tratta di frammenti di pianificazione, non di definizioni di lavoro complete. Il browser può descriverli e mostrare i futuri candidati all'orologio da parete in una zona selezionata, ma non conosce il comando, i permessi o l'host che potrebbe eventualmente utilizzarli.
Ogni minuto, ogni 5 minuti, ogni ora — * * * * *, */5 * * * * e 0 * * * * e perché il 0 iniziale è importante
`* * * * *` seleziona ogni valore minuto di ogni ora e data. `*/5 * * * *` restringe i minuti a 0, 5, 10 e così via fino a 55. `0 * * * *` seleziona solo il minuto zero, producendo un candidato all'inizio di ogni ora. Lo zero iniziale è quindi la differenza tra le posizioni di sessanta minuti e una.
Tutti e tre i moduli vengono visualizzati con sintassi preimpostata o testata. Un passaggio si espande dal limite inferiore del campo dei minuti, mentre un carattere jolly espande ogni valore consentito da 0 a 59. Usa l'anteprima per controllare rigorosamente le corse da adesso in poi; non dedurre che lo strumento abbia avviato un processo ricorrente semplicemente perché può enumerare i tempi.
Ogni giorno alla volta e due volte al giorno — 30 2 * * * e 0 6,18 * * *
Ogni giorno alle 02:30 è `30 2 * * *`: minuti 30 e ore 2 con campi del calendario illimitati. Due volte al giorno alle 06:00 e 18:00 è `0 6,18 * * *`; la virgola unisce due valori di ora mentre i minuti rimangono fissi. Entrambi sono più facili da rivedere quando l'elenco delle ore è esplicito anziché duplicato su due righe.
Un fuso orario selezionato modifica gli istanti visualizzati per gli stessi campi dell'orologio da parete. ToolAcre calcola ciascun candidato come wall time locale in quella zona e omette un'ora locale che non esiste durante un cambio di orologio in avanti. Questo comportamento di anteprima appartiene a questo strumento; l'articolo non lo generalizza in una promessa su ogni demone.
Giorni feriali e fine settimana — 0 8 * * 1-5 e 0 10 * * 0,6, con l'avvertenza sulla numerazione domenicale
I giorni feriali presso 08:00 sono `0 8 * * 1-5` e le mattine del fine settimana presso 10:00 sono `0 10 * * 0,6`. Questo parser accetta domenica come 0 o 7 e normalizza entrambi sullo stesso valore. Sono supportati anche i nomi, quindi `MON-FRI` può sostituire `1-5` senza modificare i giorni feriali espansi.
Evitare di impostare il giorno del mese contemporaneamente a meno che non si desideri un'unione OR. `0 8 1 * 1-5` non significa giorni feriali solo il primo. Comprende il primo di ogni mese più tutti i giorni feriali. Il generatore avvisa ogni volta che entrambi i campi del giorno sono limitati e inserisce "o" nella frase risultante.
Mensile, trimestrale e annuale — 0 6 1 * *, 0 6 1 1,4,7,10 * e 0 0 1 1 *
Ogni mese alle 06:00 il primo è `0 6 1 * *`. Trimestrale il primo giorno di gennaio, aprile, luglio e ottobre è `0 6 1 1,4,7,10 *`. Un'esecuzione annuale a mezzanotte del giorno 1 di gennaio è `0 0 1 1 *`, che è anche l'espansione utilizzata dagli alias `@yearly` e `@annually` supportati.
Questi esempi utilizzano un giorno esistente in ogni mese selezionato. ToolAcre accetta le combinazioni impossibili come sintatticamente legali ma avvisa quando, ad esempio, il giorno 30 è abbinato solo a Febbraio. Febbraio 29 riceve un avviso di anno bisestile. La validità del calendario viene quindi evidenziata separatamente dalla grammatica del campo anziché nascosta dietro un messaggio generico non valido.
La pianificazione dell'ultimo giorno non è esprimibile con gli operatori a cinque campi supportati
La grammatica supportata non ha un operatore dell'ultimo giorno. `L` viene rifiutato anziché tradotto e il giorno 31 non riesce a coprire i mesi con trenta giorni o febbraio. La cartella di lavoro propone un test della data sul lato comandi, ma questo repository non esegue o verifica i comandi, quindi l'articolo non presenta tale soluzione alternativa come funzionalità del generatore supportata.
Considera "l'ultimo giorno di ogni mese" come un requisito che supera questo linguaggio espressivo. Seleziona uno scheduler o una strategia di comando documentata dal target reale e testala lì. ToolAcre rimane utile per i cinque campi ordinari attorno a quella decisione, ma il successo della convalida non può produrre un operatore che il suo parser non implementa.
I campi dei secondi e gli operatori stranieri vengono rifiutati da questo parser
Le espressioni classiche in questo percorso non hanno secondi o posizione dell'anno. Sei campi vengono rifiutati con indicazioni su uno stile di pianificazione orientato ai secondi. Il parser rifiuta anche `?`, `#`, `L` e `W` perché il suo lettore di valori accetta solo numeri, nomi di tre lettere supportati, intervalli, virgole, barre e caratteri jolly.
Pertanto in questa sede non è possibile rappresentare un requisito di sottominuti. Né un'espressione di un altro scheduler può essere dichiarata equivalente semplicemente perché sembra simile. Contare le posizioni, verificare il supporto dell'operatore e ricostruire l'insieme previsto con la grammatica di destinazione. La semantica omessa dovrebbe rimanere una lacuna esplicita, non un'approssimazione accidentale.
Conclusione: costruisci partendo da questi dieci e usa il generatore Crontab per adattarne uno e rileggere il risultato
Gli orari comuni diventano più sicuri quando ogni token ha una ragione: zero segna un confine, una virgola nomina alternative, un intervallo include entrambe le estremità e una stella apre il campo. Le preimpostazioni forniscono diversi punti di partenza, inclusi moduli ogni minuto, quarto d'ora, orario, giornaliero, orario d'ufficio nei giorni feriali, domenica, mensile e annuale.
Adatta la preimpostazione più vicina, leggi la frase generata ed esegui la scansione cinque volte successive nella zona prevista dalla macchina. Tale sequenza verifica l'intento dell'espressione mantenendo la distribuzione all'esterno del browser. Un buon esempio non è solo pronto per la copia; è sufficientemente piccolo da consentire a un altro revisore di ricostruire il motivo per cui ogni campo è presente.