Riferimento: espressioni Cron e Rate per Systems Manager - AWS Systems Manager

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Riferimento: espressioni Cron e Rate per Systems Manager

Quando crei un'associazione State Manager o una finestra di manutenzione in AWS Systems Manager, devi specificare una pianificazione per l'esecuzione della finestra o dell'associazione. Una pianificazione può essere specificata come elemento basato sul tempo, denominato espressione Cron, oppure come elemento basato sulla frequenza, denominato espressione Rate.

Informazioni generali sulle espressioni Cron e Rate

Le seguenti informazioni si applicano alle espressioni cron e rate sia per le finestre di manutenzione che per le associazioni.

Pianificazioni a esecuzione singola

Quando crei un'associazione o una finestra di manutenzione puoi anche specificare un timestamp in formato UTC (Coordinated Universal Time) in modo che venga eseguita all'ora specificata. Ad esempio: "at(2020-07-07T15:55:00)"

Offset di pianificazione

Le associazioni e le finestre di manutenzione supportano anche gli offset di pianificazione solo per le espressioni cron. Un offset di pianificazione è il numero di giorni di attesa dopo la data e l'ora specificate da un'espressione CRON per l'avvio dell'esecuzione della finestra di manutenzione.

Maintenance window example

Nel comando riportato di seguito, l'espressione Cron pianifica l'esecuzione di una finestra di manutenzione il terzo martedì di ogni mese alle 23:30. Tuttavia, poiché l'offset di pianificazione è 2, la finestra di manutenzione non sarà eseguita fino alle 23:30 di due giorni dopo.

aws ssm create-maintenance-window \ --name "My-Cron-Offset-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "cron(30 23 ? * TUE#3 *)" \ --duration 4 \ --cutoff 1 \ --schedule-offset 2
Association example

Nel comando seguente, l'espressione Cron pianifica l'esecuzione di un'associazione il secondo giovedì di ogni mese. Tuttavia, poiché l'offset di pianificazione è 3, l'associazione non sarà attiva fino alla domenica successiva, tre giorni dopo.

aws ssm create-association \ --name "AWS-UpdateSSMAgent" \ --targets "Key=instanceids,Values=i-0cb2b964d3e14fd9f" \ --schedule-expression "cron(0 0 ? * THU#2 *)" \ --schedule-offset 3 --apply-only-at-cron-interval
Nota

Per utilizzare un offset con un'associazione, è necessario specificare l'opzione --apply-only-at-cron-interval. Questa opzione indica al sistema di non eseguire un'associazione immediatamente dopo averla creata.

Se crei una finestra di manutenzione o associazione con un'espressione Cron che ha come destinazione un giorno già passato nel periodo corrente, ma aggiungi una data di offset di pianificazione che ricade in futuro, la finestra di manutenzione o associazione non viene eseguita nel periodo. Verrà eseguita nel periodo successivo. Ad esempio, se specifichi un'espressione Cron che avrebbe eseguito una finestra di manutenzione ieri e aggiungi un offset di pianificazione di due giorni, la finestra di manutenzione non verrà eseguita domani.

Campi obbligatori

Le espressioni Cron per la manutenzione hanno sei campi obbligatori. Le espressioni cron per le associazioni ne hanno cinque. (State Managerattualmente non supporta la specifica di mesi nelle espressioni cron per le associazioni.) Un campo aggiuntivo, Seconds, (il primo in un'espressione cron), è facoltativo. I campi sono separati da uno spazio.

Esempi di espressioni Cron
Minuti Ore Giorno del mese Mese Giorno della settimana Anno Significato
0 10 * * ? * Esegui ogni giorno alle 10:00 (UTC)
15 12 * * ? * Esegui ogni giorno alle 12.15 (UTC)
0 18 ? * LUN-VEN * Esegui dal lunedì al venerdì alle 18.00 (UTC)
0 8 1 * ? * Esegui ogni primo giorno del mese alle 8:00 (UTC)
Valori supportati

La tabella seguente mostra i valori supportati per le voci Cron richieste.

Valori supportati per le espressioni Cron
Campo Valori Caratteri jolly
Minuti 0-59 , - * /
Ore 0-23 , - * /
D ay-of-month 1-31 , - * ? / L W
Mese (solo finestre di manutenzione) 1-12 o JAN-DEC , - * /
D ay-of-week 1-7 o SUN-SAT , - * ? / L #
Anno 1970-2199 , - * /
Nota

Non è possibile specificare un valore nei campi day-of-month e nei day-of-week campi della stessa espressione cron. Se specifichi un valore in uno dei campi, usa un carattere ? (punto interrogativo) nell'altro campo.

Caratteri jolly per le espressioni cron

La tabella che segue mostra i valori jolly supportati dalle espressioni Cron.

Nota

Le espressioni Cron che indicano frequenze più rapide di cinque (5) minuti non sono supportate. Il supporto per specificare day-of-week sia un che un day-of-month valore non è completo. Devi utilizzare il punto interrogativo (?) in uno di questi campi.

Caratteri jolly supportati per le espressioni Cron
Carattere jolly Descrizione
, Il carattere jolly ,, (virgola) include valori aggiuntivi. Nel campo Month (Mese), JAN,FEB,MAR (GEN,FEB,MAR) include gennaio, febbraio e marzo.
- Il carattere jolly - (trattino) specifica gli intervalli. Nel campo Day (Giorno), 1-15 include i giorni dall'1 al 15 del mese specificato.
* Il carattere jolly * (asterisco) include tutti i valori nel campo. Nel campo Hours (Ore), * include ogni ora.
/ Il carattere jolly / (barra) specifica gli incrementi. Nel campo Minutes (Minuti), puoi immettere 1/10 per specificare ogni decimo minuto, a partire dal primo minuto dell'ora. Il valore 1/10 specifica quindi il primo, l'undicesimo, il ventunesimo, il trentunesimo minuto e così via.
? Il carattere jolly ? (punto interrogativo) specifica uno dei valori. Nel ay-of-month campo D puoi inserire 7 e se non ti interessa in che giorno della settimana è il 7, puoi inserire? nel ay-of-week campo D.
L Il L carattere jolly nei ay-of-week campi D ay-of-month o D specifica l'ultimo giorno del mese o della settimana.
W Il carattere W jolly nel ay-of-month campo D specifica un giorno della settimana. Nel ay-of-month campo D, 3W specifica il giorno più vicino al terzo giorno della settimana del mese.
# Il # carattere jolly nel day-of-week campo seguito da un numero compreso tra uno e cinque specifica un determinato giorno del mese. 5 #3 specifica il terzo giovedì del mese.
Espressioni rate

Le espressioni Rate hanno i due seguenti campi obbligatori. I campi sono separati da spazi.

Campi obbligatori per le espressioni Rate
Campo Valori

Valore

numero positivo, ad esempio 1 o 15

Unità

minute

minutes

hour

hours

day

days

Se il valore è uguale a 1, l'unità deve essere singolare. Analogamente, per valori maggiori di 1, l'unità deve essere plurale. Ad esempio, rate(1 hours) e rate(5 hour) non sono validi, mentre lo sono rate(1 hour) e rate(5 hours).

Espressioni Cron e Rate per le associazioni

Questa sezione include esempi di espressioni Cron e Rate per le associazioni State Manager. Prima di creare una di tali espressioni, devi conoscere le seguenti informazioni:

  • Le associazioni supportano le seguenti espressioni Cron: ogni 1/2, 1, 2, 4, 8 o 12 ore; ogni giorno, ogni settimana o ogni giorno e ora specificati della settimana; un giorno specifico in una settimana specifica del mese o l'ultimo giorno x del mese a un'ora specifica.

  • Le associazioni supportano le seguenti espressioni Rate: intervalli di 30 minuti o maggiori e meno di 31 giorni.

  • Se specifichi il campo Seconds facoltativo, il relativo valore può essere 0 (zero). Ad esempio: cron(0 */30 * * * ? *)

  • Per un'associazione che raccoglie i metadati per l'inventario, una funzionalità di AWS Systems Manager, ti consigliamo di utilizzare un'espressione tariffaria.

  • State Manager attualmente non supporta la specifica di mesi nelle espressioni cron per le associazioni.

Le associazioni supportano espressioni cron che includono un giorno della settimana e il segno numerico (#) per designare il n giorno di un mese per gestire un'associazione. Ecco un esempio che esegue un programma cron il terzo martedì di ogni mese alle 23:30 UTC:

cron(30 23 ? * TUE#3 *)

Ecco un esempio che viene eseguito il secondo giovedì di ogni mese a mezzanotte UTC:

cron(0 0 ? * THU#2 *)

Le associazioni supportano anche il segno (L) per indicare l'ultimo X giorno del mese. Ecco un esempio che esegue un programma cron l'ultimo martedì di ogni mese a mezzanotte UTC:

cron(0 0 ? * 3L *)

Per controllare ulteriormente l'esecuzione di un'associazione, ad esempio se si desidera eseguire un'associazione due giorni dopo la patch di martedì, è possibile specificare un offset. Un record offset definisce quanti giorni attendere dopo il giorno programmato per eseguire un'associazione. Ad esempio, se hai specificato un programma cron di cron(0 0 ? * THU#2 *), è possibile specificare il numero 3 nel campo Offset di pianificazione per eseguire l'associazione ogni domenica dopo il secondo giovedì del mese.

Per utilizzare gli offset, è necessario scegliere l'associazione Applica solo all'opzione successiva specificata Intervallo Cronopzione nella console o è necessario specificare l'uso del parametro --apply-only-at-cron-interval dalla riga di comando. Questa opzione dice a State Manager di non eseguire un'associazione immediatamente dopo la creazione.

La tabella seguente presenta esempi di espressioni cron per le associazioni.

Esempi di espressioni Cron per le associazioni
Esempio Informazioni

cron(0/30 * * * ? *)

Ogni 30 minuti

cron(0 0/1 * * ? *)

Ogni ora

cron(0 0/2 * * ? *)

Ogni 2 ore

cron(0 0/4 * * ? *)

Ogni 4 ore

cron(0 0/8 * * ? *)

Ogni 8 ore

cron(0 0/12 * * ? *)

Ogni 12 ore

cron(15 13 ? * * *)

Ogni giorno alle 13.15

cron(15 13 ? * MON *)

Ogni lunedì alle 13.15

cron(30 23 ? * TUE#3 *)

Il terzo martedì di ogni mese alle 23:30

Di seguito sono elencati alcuni esempi di espressioni Rate per le associazioni.

Esempi di espressioni Rate per le associazioni
Esempio Informazioni

rate(30 minutes)

Ogni 30 minuti

rate(1 hour)

Ogni ora

rate(5 hours)

Ogni 5 ore

rate(15 days)

Ogni 15 giorni

Esempi AWS CLI di espressioni per le associazioni

Per creare associazioni State Manager utilizzando AWS CLI, includi il parametro --schedule-expression con un'espressione Cron o Rate. Gli esempi seguenti usano AWS CLI su una macchina Linux locale.

Nota

Per impostazione predefinita, quando si crea una nuova associazione, il sistema viene eseguito immediatamente dopo la creazione e quindi in base alla pianificazione specificata. Specifica --apply-only-at-cron-interval in modo che l'associazione non venga eseguita immediatamente dopo la creazione. Questo parametro non è supportato per le espressioni Rate.

aws ssm create-association \ --association-name "My-Cron-Association" \ --schedule-expression "cron(0 2 ? * SUN *)" \ --targets Key=tag:ServerRole,Values=WebServer \ --name AWS-UpdateSSMAgent
aws ssm create-association \ --association-name "My-Rate-Association" \ --schedule-expression "rate(7 days)" \ --targets Key=tag:ServerRole,Values=WebServer \ --name AWS-UpdateSSMAgent
aws ssm create-association \ --association-name "My-Rate-Association" \ --schedule-expression "at(2020-07-07T15:55:00)" \ --targets Key=tag:ServerRole,Values=WebServer \ --name AWS-UpdateSSMAgent \ --apply-only-at-cron-interval

Espressioni Cron e Rate per le finestre di manutenzione

Questa sezione include esempi di espressioni Cron e Rate per le finestre di manutenzione.

A differenza delle associazioni State Manager, le finestre di manutenzione supportano tutte le espressioni Cron e Rate. Ciò include il supporto per i valori nel campo dei secondi.

Ad esempio, la seguente espressione Cron composta da 6 campi esegue una finestra di manutenzione ogni giorno alle 9:30.

cron(30 09 ? * * *)

Aggiungendo un valore al campo Seconds, la seguente espressione Cron composta da 7 campi esegue una finestra di manutenzione ogni giorno alle 9:30:24.

cron(24 30 09 ? * * *)

La tabella seguente fornisce ulteriori esempi di espressioni Cron composte da 6 campi per le finestre di manutenzione.

Esempi di espressioni Cron per finestre di manutenzione
Esempio Informazioni

cron(0 2 ? * THU#3 *)

Il terzo giovedì di ogni mese alle 02.00

cron(15 10 ? * * *)

Ogni giorno alle 10.15

cron(15 10 ? * MON-FRI *)

Ogni lunedì, martedì, mercoledì, giovedì e venerdì alle 10.15

cron(0 2 L * ? *)

L'ultimo giorno di ogni mese alle 02.00

cron(15 10 ? * 6L *)

L'ultimo venerdì di ogni mese alle 10.15

La tabella seguente fornisce esempi di espressioni Rate per le finestre di manutenzione.

Esempi di espressioni Rate per le finestre di manutenzione
Esempio Informazioni

rate(30 minutes)

Ogni 30 minuti

rate(1 hour)

Ogni ora

rate(5 hours)

Ogni 5 ore

rate(25 days)

Ogni 25 giorni

Esempi AWS CLI di espressioni per le finestre di manutenzione

Per creare delle finestre di manutenzione utilizzando la AWS CLI, includi il parametro --schedule con un'espressione Cron o Rate oppure un timestamp. Gli esempi seguenti usano AWS CLI su una macchina Linux locale.

aws ssm create-maintenance-window \ --name "My-Cron-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "cron(0 16 ? * TUE *)" \ --schedule-timezone "America/Los_Angeles" \ --start-date 2021-01-01T00:00:00-08:00 \ --end-date 2021-06-30T00:00:00-08:00 \ --duration 4 \ --cutoff 1
aws ssm create-maintenance-window \ --name "My-Rate-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "rate(7 days)" \ --duration 4 \ --schedule-timezone "America/Los_Angeles" \ --cutoff 1
aws ssm create-maintenance-window \ --name "My-TimeStamp-Maintenance-Window" \ --allow-unassociated-targets \ --schedule "at(2021-07-07T13:15:30)" \ --duration 4 \ --schedule-timezone "America/Los_Angeles" \ --cutoff 1
Ulteriori informazioni

Espressione CRON sul sito di Wikipedia