Referensi: Ekspresi cron dan rate untuk Systems Manager - AWS Systems Manager

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Referensi: Ekspresi cron dan rate untuk Systems Manager

Saat Anda membuat State Manager asosiasi atau jendela pemeliharaan di AWS Systems Manager, Anda menentukan jadwal kapan jendela atau asosiasi harus berjalan. Anda dapat menentukan penjadwal baik sebagai entri berbasis waktu, disebut Cron expression, atau entri berbasis frekuensi, disebut rate expression.

Informasi umum tentang cron dan ekspresi rate

Informasi berikut berlaku untuk ekspresi cron dan rate untuk kedua jendela pemeliharaan dan asosiasi.

Jadwal lari tunggal

Saat Anda membuat asosiasi atau jendela pemeliharaan, Anda dapat menentukan stempel waktu dalam format Coordinated Universal Time (UTC) sehingga berjalan sekali pada waktu yang ditentukan. Misalnya: "at(2020-07-07T15:55:00)"

Jadwalkan offset

Asosiasi dan jendela pemeliharaan mendukung offset jadwal untuk ekspresi cron saja. Offset jadwal adalah jumlah hari untuk menunggu setelah tanggal dan waktu yang ditentukan oleh ekspresi cron sebelum menjalankan jendela asosiasi atau pemeliharaan.

Maintenance window example

Dalam perintah berikut, ekspresi cron menjadwalkan jendela pemeliharaan untuk menjalankan Selasa ketiga setiap bulan pada pukul 11:30. Namun, karena jadwal offset adalah2, jendela pemeliharaan tidak akan berjalan sampai 11:30 PM dua hari kemudian.

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

Dalam perintah berikut, ekspresi cron menjadwalkan asosiasi untuk menjalankan Kamis kedua setiap bulan. Namun, karena jadwal offset adalah3, asosiasi tidak akan berjalan sampai hari Minggu berikutnya, tiga hari kemudian.

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
catatan

Untuk menggunakan offset dengan asosiasi, Anda harus menentukan opsi. --apply-only-at-cron-interval Opsi ini memberitahu sistem untuk tidak menjalankan asosiasi segera setelah Anda membuatnya.

Jika Anda membuat asosiasi atau jendela pemeliharaan dengan ekspresi cron yang menargetkan hari yang telah berlalu dalam periode saat ini, tetapi menambahkan tanggal offset jadwal yang jatuh di masa depan, jendela asosiasi atau pemeliharaan tidak akan berjalan dalam periode tersebut. Itu akan berlaku pada periode berikut. Misalnya, jika Anda menentukan ekspresi cron yang akan menjalankan pemeliharaan windows kemarin dan menambahkan penjadwal offset dua hari, pemeliharaan windows tidak akan berjalan besok.

Bidang wajib

Ekspresi cron untuk jendela pemeliharaan memiliki enam bidang wajib. Ekspresi cron untuk asosiasi memiliki lima. (State Manager saat ini tidak mendukung menentukan bulan dalam ekspresi cron untuk asosiasi.) Bidang tambahan, Seconds bidang (yang pertama dalam ekspresi cron), adalah opsional. Field dipisahkan oleh space.

Contoh ekspresi cron
Menit Jam Hari dalam sebulan Bulan Hari dalam seminggu Tahun Arti
0 10 * * ? * Jalankan pukul 10:00 pagi (UTC) setiap hari
15 12 * * ? * Jalankan pukul 12:15 siang (UTC) setiap hari
0 18 ? * MON-FRI * Jalankan pukul 18:00 (UTC) setiap Senin sampai Jumat
0 8 1 * ? * Jalankan pukul 8:00 pagi (UTC) setiap hari pertama setiap bulan
Nilai yang didukung

Tabel berikut menunjukkan nilai support untuk entri cron diperlukan.

Nilai support untuk ekspresi cron
Bidang Nilai Wildcard
Menit 0-59 , - * /
Jam 0-23 , - * /
D ay-of-month 1-31 , - * ? / L W
Bulan (hanya jendela pemeliharaan) 1- 12 atau JAN - DEC , - * /
D ay-of-week 1- 7 atau SUN - SAT , - * ? / L #
Tahun 1970-2199 , - * /
catatan

Anda tidak dapat menentukan nilai di day-of-month dan di day-of-week bidang dalam ekspresi cron yang sama. Jika Anda menentukan nilai di salah satu fields, gunakan ? (tanda tanya) di field lain.

Wildcard untuk ekspresi cron

Tabel berikut menunjukkan nilai wildcard yang support ekspresi cron.

catatan

Ekspresi cron yang mengarah ke tingkat lebih cepat dari (5) menit tidak support. Support untuk menentukan nilai day-of-week dan day-of-month nilai tidak lengkap. Gunakan karakter tanda tanya (?) di salah satu field ini.

Wildcard support untuk ekspresi cron
Wildcard Deskripsi
, Wildcard , (koma) mencakup nilai tambahan. Di bidang Bulan,, JANFEB, MAR akan mencakup Januari, Februari, dan Maret.
- Wildcard - (dash) menentukan rentang. Di bidang Tanggal, 1-15 akan mencakup tanggal 1 hingga 15 pada bulan yang ditentukan.
* Wildcard * (asterisk) mencakup semua nilai di lapangan. Di field Jam, * akan mencakup setiap jam.
/ Wildcard / (garis miring maju) menentukan kenaikan. Di field menit, Anda bisa memasukkan 1/10 untuk menentukan setiap menit kesepuluh, mulai dari menit pertama jam. Jadi 1/10 menentukan pertama, menit 11, 21, dan 31, dan seterusnya.
? Wildcard ? (tanda tanya) menentukan satu atau yang lain. Di Day-of-month lapangan Anda bisa memasukkan 7 dan jika Anda tidak peduli hari apa dalam minggu ke-7, Anda bisa masuk? di Day-of-week lapangan.
L LWildcard di Day-of-week bidang Day-of-month atau menentukan hari terakhir bulan atau minggu.
W WWildcard di Day-of-month lapangan menentukan hari kerja. Di Day-of-month lapangan, 3W menentukan hari yang paling dekat dengan hari kerja ketiga setiap bulan.
# #Wildcard di day-of-week lapangan diikuti oleh angka antara satu dan lima menentukan hari tertentu dalam sebulan. 5 #3 menentukan Kamis ke-3 setiap bulan.
Nilai ekspresi

Ekspresi rate memiliki dua field wajib berikut. Fields dipisahkan oleh spasi.

Kolom yang diperlukan untuk ekspresi rate
Bidang Nilai

Nilai

angka positif, seperti 1 atau 15

Unit

minute

minutes

hour

hours

day

days

Jika nilai sama dengan 1, maka unit harus tunggal. Demikian pula, untuk nilai lebih besar dari 1, unit harus jamak. Misalnya, rate(1 hours) dan rate(5 hour) tidak validasi, tapi rate(1 hour) dan rate(5 hours) validasi.

Ekspresi cron dan rate untuk associate

Bagian ini mencakup contoh ekspresi cron dan rate untuk State Manager asosiasi. Sebelum Anda membuat salah satu ungkapan ini, perhatikan informasi berikut:

  • Asosiasi mendukung ekspresi cron berikut: Setiap 1/2, 1, 2, 4, 8, atau 12 jam; setiap hari, setiap minggu, atau setiap hari dan waktu tertentu dalam seminggu; hari tertentu dalam minggu tertentu dalam sebulan, atau x hari terakhir bulan pada waktu tertentu.

  • Associate support ekspresi rate berikut: interval 30 menit atau lebih dan kurang dari 31 hari.

  • Jika Anda menentukan opsional Seconds field, nilai dapat menjadi 0 (nol). Misalnya: cron(0 */30 * * * ? *)

  • Untuk associate yang mengumpulkan metadata untuk Inventory, kemampuan dari AWS Systems Manager, kami rekomendasi menggunakan ekspresi rate.

  • State Manager saat ini tidak mendukung menentukan bulan dalam ekspresi cron untuk asosiasi.

Asosiasi mendukung ekspresi cron yang mencakup hari dalam seminggu dan tanda angka (#) untuk menunjuk hari ke-n dalam sebulan untuk menjalankan asosiasi. Berikut adalah contoh yang menjalankan jadwal cron pada hari Selasa ketiga setiap bulan pukul 23:30: UTC

cron(30 23 ? * TUE#3 *)

Berikut adalah contoh yang berjalan pada hari Kamis kedua setiap bulan pada tengah malamUTC:

cron(0 0 ? * THU#2 *)

Asosiasi juga mendukung tanda (L) untuk menunjukkan hari X terakhir setiap bulan. Berikut adalah contoh yang menjalankan jadwal cron pada hari Selasa terakhir setiap bulan pada tengah UTC malam:

cron(0 0 ? * 3L *)

Untuk mengontrol lebih lanjut saat asosiasi berjalan, misalnya jika Anda ingin menjalankan asosiasi dua hari setelah patch Selasa, Anda dapat menentukan offset. Offset mendefinisikan berapa hari untuk menunggu setelah hari yang dijadwalkan untuk menjalankan asosiasi. Misalnya, jika Anda menentukan jadwal croncron(0 0 ? * THU#2 *), Anda dapat menentukan angka 3 di bidang Offset Jadwal untuk menjalankan asosiasi setiap hari Minggu setelah Kamis kedua setiap bulan.

Untuk menggunakan offset, Anda harus memilih asosiasi Terapkan hanya pada opsi interval Cron yang ditentukan berikutnya di konsol atau Anda harus menentukan --apply-only-at-cron-interval parameter penggunaan dari baris perintah. Opsi ini memberi tahu State Manager tidak menjalankan asosiasi segera setelah Anda membuatnya.

Tabel berikut menyajikan contoh cron untuk asosiasi.

Contoh cron untuk associate
Contoh Detail

cron(0/30 * * * ? *)

Setiap 30 menit

cron(0 0/1 * * ? *)

Setiap jam

cron(0 0/2 * * ? *)

Setiap 2 jam

cron(0 0/4 * * ? *)

Setiap 4 jam

cron(0 0/8 * * ? *)

Setiap 8 jam

cron(0 0/12 * * ? *)

Setiap 12 jam

cron(15 13 ? * * *)

Setiap hari pukul 1:15 siang

cron(15 13 ? * MON *)

Setiap Senin pukul 1:15 siang

cron(30 23 ? * TUE#3 *)

Selasa ketiga setiap bulan pukul 11:30

Berikut adalah beberapa contoh rate untuk associate.

Contoh rate untuk associate
Contoh Detail

rate(30 minutes)

Setiap 30 menit

rate(1 hour)

Setiap jam

rate(5 hours)

Setiap 5 jam

rate(15 days)

Setiap 15 hari

AWS CLI contoh untuk asosiasi

Untuk membuat State Manager asosiasi menggunakan AWS CLI, Anda menyertakan --schedule-expression parameter dengan ekspresi cron atau rate. Contoh berikut menggunakan AWS CLI pada mesin Linux lokal.

catatan

Secara default, ketika Anda membuat associate baru, sistem berjalan segera setelah dibuat lalu mengikuti dengan penjadwal yang Anda tentukan. Tentukan --apply-only-at-cron-interval sehingga associate tidak berjalan segera setelah Anda membuatnya. Ini parameter tidak support untuk ekspresi 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

Ekspresi cron dan rate untuk pemeliharaan windows

Bagian ini mencakup contoh ekspresi cron dan rate untuk pemeliharaan windows.

Tidak seperti State Manager asosiasi, jendela pemeliharaan mendukung semua ekspresi cron dan rate. Ini termasuk support untuk nilai di field detik.

Misalnya, 6-field ekspresi cron berikut menjalankan pemeliharaan windows pada pukul 9:30 AMS setiap hari.

cron(30 09 ? * * *)

Dengan menambahkan nilai ke Seconds field, ekspresi 7-field berikut menjalankan pemeliharaan windows pada pukul 9:30:24 AMS setiap hari.

cron(24 30 09 ? * * *)

Tabel berikut memberikan tambahan 6-field contoh cron untuk pemeliharaan windows.

Contoh cron untuk pemeliharaan windows
Contoh Detail

cron (0 2? * THU #3 *)

Pukul 02:00 AMS Kamis ketiga setiap bulan

cron (15 10 ? * * *)

Pukul 10:15 AMS setiap hari

cron (15 10? * MON - FRI *)

Pukul 10:15 AMS setiap hari Senin, Selasa, Rabu, Kamis dan Jumat

cron (0 2 L * ? *)

Pukul 02:00 AMS pada hari terakhir setiap bulan

cron (15 10 ? * 6L *)

Pukul 10:15 AMS pada hari Jumat terakhir setiap bulan

Tabel berikut memberikan contoh rate untuk pemeliharaan windows.

Contoh rate untuk pemeliharaan windows
Contoh Detail

rate(30 minutes)

Setiap 30 menit

rate(1 hour)

Setiap jam

rate(5 hours)

Setiap 5 jam

rate(25 days)

Setiap 25 hari

AWS CLI contoh untuk jendela pemeliharaan

Untuk membuat jendela pemeliharaan menggunakan AWS CLI, Anda menyertakan --schedule parameter dengan ekspresi cron atau rate atau stempel waktu. Contoh berikut menggunakan AWS CLI pada mesin Linux lokal.

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
Info lebih lanjut

CRONekspresi di situs web Wikipedia