Pahami jadwal cron sebelum dijalankan
Ekspresi cron adalah string penjadwalan ringkas yang digunakan oleh server, pekerjaan CI, platform otomatisasi, dan skrip pemeliharaan. Mereka kuat, tetapi satu kesalahan ketik kecil dapat mengubah tugas dari harian menjadi setiap menit, atau dari hari kerja menjadi akhir pekan.
Parser ini menjelaskan ekspresi cron Unix 5-bidang dalam bahasa yang mudah dimengerti, memecah setiap bidang, dan menunjukkan waktu eksekusi mendatang menggunakan zona waktu yang Anda pilih di alat.
Dialek cron yang didukung
Parser v1 mendukung cron Unix standar dengan lima bidang:
minute hour day-of-month month day-of-week - Nilai menit dari
0to59. - Nilai jam dari
0to23. - Nilai hari-bulan dari
1to31. - Nilai bulan dari
1to12, ditambah nama sepertiJANandDEC. - Nilai hari-minggu dari
0to7, ditambah nama sepertiMONandFRI. Kedua0and7berarti Minggu.
Mendukung wildcard, daftar dengan koma, rentang, dan nilai langkah seperti */15 or 9-17/2.
Yang secara sengaja tidak didukung
Dialek cron tidak universal. Quartz, systemd timers, cloud schedulers, Kubernetes, GitHub Actions, dan platform hosting dapat menambahkan bidang mereka sendiri atau operator khusus.
- Bidang detik dan bidang tahun tidak diurai sebagai cron Unix.
- Operator Quartz seperti
?,L,W, dan#dilaporkan sebagai tidak didukung. - Makro seperti
@dailyand@reboottidak dikembangkan. - Teks perintah setelah sebuah jadwal tidak diperlakukan sebagai bagian dari ekspresi.
Gunakan halaman ini sebagai pemeriksa untuk jadwal gaya Unix. Sebelum mengubah otomatisasi produksi, verifikasi penjadwal pasti yang akan menjalankan pekerjaan.
Zona waktu dan perilaku daylight saving
Sebuah ekspresi cron tidak menyertakan zona waktu dengan sendirinya. Ekspresi yang sama bisa dijalankan pada momen yang berbeda tergantung apakah server menggunakan UTC, zona waktu sistem lokal, atau pengaturan zona waktu khusus penjadwal.
- Pratinjau menunjukkan waktu eksekusi dalam zona waktu IANA yang dipilih dan dalam UTC.
- Transisi maju (spring-forward) dapat melewatkan waktu jam dinding lokal yang tidak ada.
- Transisi mundur (fall-back) dapat mengulangi waktu jam dinding lokal; perilaku penjadwal mungkin berbeda.
- Jika baik day-of-month maupun day-of-week dibatasi, cron Unix umumnya menggunakan semantik OR.
Untuk pekerjaan kritis, anggap pratinjau sebagai alat perencanaan dan konfirmasikan perilaku di penjadwal itu sendiri.
Pertanyaan yang Sering Diajukan
Apakah ini mendukung Quartz cron?
Tidak. Parser mendukung cron Unix 5-bidang saja. Bidang detik gaya Quartz, bidang tahun, dan operator seperti ?, L, W, dan # ditampilkan sebagai tidak didukung.
Zona waktu mana yang digunakan sebuah ekspresi cron?
Ekspresi cron tidak membawa informasi zona waktu. Pratinjau menggunakan zona waktu yang dipilih di alat, tetapi server atau penjadwal Anda mungkin menggunakan zona waktu yang berbeda.
Mengapa day-of-month dan day-of-week bisa sama-sama cocok?
Dalam perilaku cron Unix umum, ketika kedua bidang dibatasi, sebuah tanggal dapat cocok jika salah satu bidang cocok. Sebagai contoh, 0 0 1 * MON dapat dijalankan pada hari pertama bulan dan pada hari Senin.
Bisakah saya menempel bagian perintah dari crontab?
Tempel hanya lima bidang jadwal. Alat ini adalah parser jadwal, bukan parser crontab penuh, jadi teks perintah setelah jadwal tidak ditafsirkan.