Pengurai & Pembuat Ekspresi Cron
Baca ekspresi cron Unix, Spring, Quartz, dan AWS, lihat waktu jalan berikutnya di zona waktu mana pun, atau susun ekspresi per kolom.
Jadwal
Rincian kolom
| Kolom | Ekspresi | Nilai |
|---|
Waktu jalan berikutnya
Pembuat visual
Pilih cara setiap kolom berulang. “Nilai tertentu” menerima daftar seperti 1,15 atau MON,WED; “Rentang” menerima dari-sampai seperti 9-17; “Setiap N” menerima langkahnya.
Karakter khusus
| * | Semua nilai kolom. |
| , | Daftar nilai, mis. 1,15,30. |
| - | Rentang, mis. 9-17 atau MON-FRI. |
| / | Langkah, mis. */15 = setiap 15; 5/15 = mulai 5 setiap 15 (tidak ada di cron Unix). |
| ? | Tanpa nilai tertentu. Quartz dan AWS mewajibkannya di kolom tanggal atau hari. |
| L | Terakhir: L di kolom tanggal = hari terakhir; L-3 = tiga hari sebelumnya; 5L di kolom hari = Kamis terakhir (penomoran Quartz). |
| W | Hari kerja terdekat: 15W = hari kerja terdekat dengan tanggal 15; LW = hari kerja terakhir bulan itu. |
| # | Hari ke-N dalam bulan: 6#3 = Jumat ketiga di Quartz/AWS (1 = Minggu); 5#3 di Spring (0 = Minggu). |
| @daily … | Makro: @yearly, @monthly, @weekly, @daily, @hourly; @reboot berjalan sekali saat mulai. |
Cara menggunakan
- Ketik atau tempel jadwal di "Ekspresi cron", atau klik salah satu contoh yang tersedia, yang juga mengatur "Format" ke "Deteksi otomatis". Ringkasan dan waktu jalan diperbarui saat Anda mengetik.
- Biarkan "Format" pada "Deteksi otomatis" atau pilih sistem yang menjadi tujuan ekspresi tersebut. Deteksi otomatis membaca 5 kolom sebagai Unix dan 7 kolom sebagai Quartz. Untuk 6 kolom, alat ini memilih AWS atau Quartz berdasarkan posisi "?", memilih AWS jika kolom terakhir berisi tahun dari 1970 hingga 2199, dan selain itu menganggapnya sebagai Spring. Makro seperti @weekly dibaca sebagai Unix. Jika ekspresi valid, baris status menyebutkan format yang digunakan.
- Baca "Jadwal" dan "Rincian kolom" untuk melihat nilai yang cocok dengan setiap kolom, lalu periksa tanggal di bawah "Waktu jalan berikutnya". "Zona waktu" awalnya diatur ke zona browser Anda; pilih zona lain jika perlu, lalu pilih 5, 10, atau 20 di "Jumlah jadwal yang ditampilkan". Untuk zona selain UTC, setiap waktu jalan juga ditampilkan dalam UTC.
- Untuk menyusun ekspresi sendiri, buka "Pembuat visual", pilih format, lalu pilih cara setiap kolom berulang dan masukkan nilai jika kolom tersebut memintanya. "Gunakan ekspresi ini" menyalin "Ekspresi yang dihasilkan" ke "Ekspresi cron", mengatur "Format" ke format yang dipilih di pembuat visual, lalu mengurainya, sehingga Anda dapat memeriksa waktu jalannya.
Pertanyaan umum
Apakah ekspresi yang saya masukkan dikirim ke suatu tempat?
Tidak. Ekspresi diurai dan waktu jalan dihitung di browser Anda dengan JavaScript; ekspresi tidak diunggah ke LeedyBox.
Mengapa 0 0 13 * 5 berjalan setiap hari Jumat, bukan hanya pada Jumat tanggal 13?
Di cron Unix, jika kolom tanggal dan kolom hari sama-sama dibatasi (tidak ada yang diawali *), suatu hari dianggap cocok jika salah satu kolom cocok, sehingga ekspresi ini berjalan pada tanggal 13 setiap bulan dan juga setiap hari Jumat. Alat ini menerapkan aturan tersebut pada ekspresi Unix, dan "Jadwal" kemudian menampilkan "salah satu sudah cukup". Untuk ekspresi Spring, kedua kolom harus cocok, sedangkan Quartz dan AWS menghindari persoalan ini dengan mewajibkan "?" di salah satu dari kedua kolom tersebut. Di cron Unix, solusi yang umum adalah menjadwalkan tugas setiap hari Jumat lalu memeriksa tanggalnya di dalam tugas itu.
Apakah hari Minggu bernilai 0, 1, atau 7?
Tergantung formatnya. Dalam ekspresi Unix dan Spring, 0 dan 7 sama-sama berarti Minggu dan 1 adalah Senin; di Quartz dan AWS, 1 adalah Minggu dan 7 adalah Sabtu, sehingga di sana 1-5 berarti Minggu sampai Kamis. Nama hari seperti MON-FRI menghindari perbedaan ini di Spring, Quartz, dan AWS.
Mengapa baris crontab atau ekspresi cron( ) AWS saya ditolak?
Masukkan kolom jadwalnya saja. Perintah di akhir baris crontab, serta nama pengguna di /etc/crontab, dihitung sebagai kolom tambahan, sehingga alat ini melaporkan kolom yang tidak valid atau jumlah kolom yang salah. Untuk AWS, tempel enam kolom dari dalam cron( ) tanpa pembungkusnya.
Bagaimana cara menulis ulang ekspresi Unix untuk Spring, Quartz, atau AWS?
Spring menambahkan kolom detik di awal, sehingga 0 9 * * 1-5 menjadi 0 0 9 * * 1-5. Quartz juga membutuhkan "?" di kolom tanggal atau kolom hari dan menomori hari Minggu sebagai 1, sehingga jadwal yang sama ditulis 0 0 9 ? * MON-FRI. AWS tidak memiliki kolom detik, membutuhkan "?" di kolom tanggal atau kolom hari seperti Quartz, dan menambahkan tahun di akhir: 0 9 ? * MON-FRI *. Jika ekspresi Unix membatasi kolom tanggal dan kolom hari sekaligus, ekspresi itu bergantung pada aturan yang dijelaskan di atas, yaitu cukup salah satu kolom yang cocok, dan aturan ini tidak dipakai oleh format-format tersebut, sehingga biasanya Anda memerlukan dua jadwal. Periksa hasilnya dengan format tujuan dipilih, lalu bandingkan waktu jalan berikutnya.
Mengapa alat ini menyatakan bahwa tidak ditemukan waktu jalan?
Ekspresinya valid, tetapi tidak ditemukan waktu yang cocok dalam rentang sekitar 8 tahun ke depan yang ditelusuri alat ini. Penyebab yang umum adalah tanggal yang tidak ada, seperti 0 0 30 2 * (30 Februari) atau tanggal 31 yang hanya digabungkan dengan bulan yang memiliki 30 hari, serta kolom tahun yang sudah lewat. Tahun yang lebih dari 8 tahun ke depan juga menghasilkan pesan yang sama, meskipun jadwal tersebut tetap bisa berjalan nanti. Sebagian penjadwal, termasuk cron Unix klasik, menerima tanggal yang tidak ada tanpa peringatan, dan tugasnya tidak berjalan.
Zona waktu mana yang digunakan, dan bagaimana dengan waktu musim panas (DST)?
Waktu jalan dihitung untuk zona yang dipilih di "Zona waktu". Pilih zona yang dipakai penjadwal Anda: crontab biasanya mengikuti zona waktu server, aturan terjadwal (scheduled rule) di AWS EventBridge menggunakan UTC, dan EventBridge Scheduler memungkinkan Anda mengatur zona waktu. Menu ini menyediakan zona browser Anda, UTC, dan sejumlah zona yang umum; jika zona penjadwal Anda tidak tersedia, pilih zona dengan offset UTC dan tanggal waktu musim panas yang sama. Waktu jalan yang jatuh pada jam yang terlewati saat jam dimajukan tidak dicantumkan dalam daftar, dan waktu yang terjadi dua kali saat jam dimundurkan dicantumkan satu kali. Daemon cron menangani jam-jam ini dengan cara yang berbeda-beda; cronie, misalnya, dapat menjalankan tugas dari jam yang terlewati tepat setelah perubahan jam. Periksa perilaku penjadwal Anda, atau gunakan UTC, yang tidak mengenal waktu musim panas.