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 State Manager associazione o finestra di manutenzione in AWS Systems Manager, si specifica 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 si crea un'associazione o una finestra di manutenzione, è possibile specificare un timestamp nel formato Coordinated Universal Time (UTC) in modo che venga eseguito una volta 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 Manager attualmente non supporta la specificazione dei 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 * * ? * Corri alle 10:00 () UTC ogni giorno
15 12 * * ? * Corri alle 12:15 (UTC) ogni giorno
0 18 ? * MON-FRI * Corri alle 18:00 (UTC) dal lunedì al venerdì
0 8 1 * ? * Esegui alle 8:00 (UTC) ogni primo giorno del mese
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 Mese,JAN,FEB, MAR includerebbe 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 Day-of-month campo puoi inserire 7 e se non ti interessa in che giorno della settimana è il 7, puoi inserire? sul Day-of-week campo.
L Il L carattere jolly nei Day-of-week campi Day-of-month o specifica l'ultimo giorno del mese o della settimana.
W Il carattere W jolly nel Day-of-month campo specifica un giorno della settimana. Nel Day-of-month campo, 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 State Manager associazioni. 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 specificazione dei 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 indica State Manager non eseguire un'associazione subito dopo averla creata.

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

AWS CLI esempi di associazioni

Per creare State Manager associazioni che utilizzano il AWS CLI, includete il --schedule-expression parametro con un'espressione cron o rate. Negli esempi seguenti viene utilizzata la AWS CLI su un computer 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 State Manager associazioni, 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

AWS CLI esempi di finestre di manutenzione

Per creare finestre di manutenzione utilizzando AWS CLI, includete il --schedule parametro con un'espressione cron o rate o un timestamp. Negli esempi seguenti viene utilizzato il AWS CLI su un computer 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

CRONespressione sul sito web di Wikipedia