Italiano

Strumenti per sviluppatori · Generatore di Crontab

@reboot, @daily, @hourly: da dove provengono le pianificazioni dei nickname di cron

· Sfondo

cron alias pianificazione

Sette alias di pianificazione denominati che si espandono in cinque campi accanto a un simbolo di riavvio bloccato
Illustrazione vettoriale originale ToolAcre

Le abbreviazioni @ sono leggibili, popolari e non universali. Questo post spiega a cosa si espandono ciascuno, da dove provengono, il caso speciale di @reboot e quando invece scrivere i cinque campi.

@reboot viene rifiutato perché lo strumento visualizza in anteprima gli orari del calendario, non gli eventi di avvio

`@reboot` assomiglia agli altri moduli con chiocciola ma non ha un'espansione del calendario a cinque campi in ToolAcre. Il parser lo rifiuta con una ragione esplicita: non c'è una pianificazione da visualizzare in anteprima. Un evento di avvio dipende dal ciclo di vita di una macchina o di un servizio che questo percorso del browser non osserva né controlla.

Questa distinzione mantiene onesto l'elenco di esecuzione successiva. Gli alias del calendario possono diventare campi e date concreti. Un alias di riavvio non può produrre cinque futuri candidati a orologio da parete dall'istante corrente senza inventare riavvii futuri. Il rifiuto è quindi più accurato di un'anteprima vuota o fabbricata.

I soprannomi e le relative espansioni: @hourly, @daily e @midnight, @weekly, @monthly, @yearly e @annually come equivalenti a cinque campi

La tabella supportata è esatta. `@hourly` diventa `0 * * * *`; `@daily` e `@midnight` diventano `0 0 * * *`; `@weekly` diventa `0 0 * * 0`; `@monthly` diventa `0 0 1 * *`; e `@yearly` più `@annually` diventano `0 0 1 1 *`.

L'interfaccia utente risolve un alias accettato prima di copiare i valori nelle cinque singole caselle. L'analisi restituisce l'espressione normalizzata a cinque campi, le descrizioni utilizzano la forma analizzata e i test eseguono l'iterazione di ogni alias. L'espansione è quindi ispezionabile e non nascosta.

Non viene modellato alcun comportamento di avvio del demone o di avvio del sistema

Nessun codice in questo percorso riceve eventi di avvio del sistema operativo. Non esiste un processo demone, un identificatore di avvio o un grafico delle dipendenze del servizio. Le istruzioni della cartella di lavoro su quando viene eseguito `@reboot` non possono essere stabilite da un parser che rifiuta deliberatamente il token.

Se un target supporta un nickname di avvio, consulta la definizione del ciclo di vita di quel target e testalo in modo sicuro. Non utilizzare l'errore di ToolAcre come prova che la funzionalità è universalmente non valida e non utilizzare il supporto di un'altra implementazione come prova che questo percorso dovrebbe visualizzarne l'anteprima.

Le origini degli alias e la diffusione delle implementazioni incrociate richiedono fonti storiche esterne

Il quaderno di esercizi attribuiva gli alias a un'implementazione storica e ne descriveva la diffusione. Il repository non contiene alcuna fonte storica primaria per tale affermazione. Ciò che dimostra è il comportamento del tempo presente: sette chiavi in ​​`ALIASES`, ricerca senza distinzione tra maiuscole e minuscole e rifiuto di abbreviazioni sconosciute.

Questo è sufficiente per la documentazione pratica. I lettori possono vedere esattamente quali moduli funzionano qui e in cosa si espandono. La provenienza può essere aggiunta successivamente con una fonte d'archivio; non dovrebbe essere dedotto da un nome costante o dalla popolarità di una sintassi simile altrove.

Esempio funzionante: sostituire @daily con 0 0 * * * — e perché la forma esplicita consente anche di spostare l'ora fuori dalla mezzanotte

La sostituzione di `@daily` con `0 0 * * *` espone i campi dell'ora. La modifica dell'ora da 0 a 4 produce `0 4 * * *`, che lo strumento descrive come 04:00 ogni giorno. La forma esplicita è migliore quando la mezzanotte non è l'orario previsto.

Le caselle di campo rendono semplice questa regolazione e il fuso orario selezionato controlla gli istanti di anteprima. L'espressione copiata non contiene alias dopo l'espansione nel risultato del parser, ma il testo originale può rimanere nella casella dell'intera espressione finché non viene modificato un campo. Esaminare il valore effettivamente copiato prima della distribuzione.

L'ordinamento e le dipendenze all'avvio sono esterni al generatore

Il lavoro di avvio spesso dipende da file system, reti, credenziali o altri servizi. ToolAcre non ha un modello di dipendenza e non può valutare la disponibilità, i ritardi o il comportamento di riavvio. Anche se accettasse `@reboot`, la convalida dell'espressione non risolverebbe tali problemi operativi.

Tratta l'esecuzione all'avvio come un progetto del ciclo di vita piuttosto che come un collegamento al calendario. Prerequisiti del documento e gestione degli errori nell'ambiente di destinazione. Il generatore rimane appropriato per programmi ricorrenti a cinque campi i cui orari successivi possono essere effettivamente calcolati.

Le alternative del gestore del servizio non vengono valutate qui

La cartella di lavoro puntava alle moderne unità di servizio, ma questo repository non le crea né le confronta. Nessuna sintassi dell'unità, direttiva sulle dipendenze o test di avvio è tra le fonti. L'articolo evita quindi di consigliare una sostituzione basata esclusivamente su un nickname non supportato.

Scegli un meccanismo del ciclo di vita dalla documentazione di destinazione e dai requisiti operativi. Il contributo di ToolAcre è il limite negativo: `@reboot` è al di fuori del suo dominio visualizzabile in anteprima, mentre gli alias di calendario ordinari hanno equivalenti trasparenti a cinque campi.

Conclusione: i soprannomi sono zucchero per le espressioni fisse e il generatore ti consente di creare la versione esplicita e rileggerla

Gli alias sono etichette concise per espressioni fisse in questa implementazione. Espandili ogni volta che la revisione o la personalizzazione traggono vantaggio dalla visualizzazione delle posizioni. `@daily` non è magico; è mezzanotte in tutti i campi del calendario senza restrizioni nella zona di anteprima selezionata.

Utilizza l'elenco supportato, esamina l'espansione e allontanati dalla mezzanotte quando appropriato. Per gli eventi di avvio, interrompi e seleziona un meccanismo specifico per il target invece di forzare un trigger del ciclo di vita imprevedibile in un generatore di calendario. Questo confine è intenzionale e testato.