TanodTools
ID

Jelaskan ekspresi cron

Baca jadwal crontab dalam bahasa sehari-hari dan lihat daftar waktu eksekusi berikutnya, di zona waktu mana pun.

Berjalan sepenuhnya di browser Anda

Menit
Jam
Tanggal
Bulan
Hari dalam seminggu

Eksekusi berikutnya

Biarkan kosong untuk mulai dari sekarang.

    Cron standar lima kolom (menit, jam, tanggal, bulan, hari dalam seminggu) seperti yang dipakai Vixie cron, cronie dan sebagian besar sistem Linux, plus pintasan seperti @daily. Format Quartz dan format lain yang memakai kolom detik dikenali tetapi tidak dijelaskan.

    Cara mengecek ekspresi cron

    1. Ketik atau tempel kelima kolom jadwal, misalnya */15 9-17 * * 1-5, atau pilih contoh. Baris crontab lengkap juga bisa; perintah setelah kolom kelima diabaikan.
    2. Baca ringkasannya dalam bahasa sehari-hari dan rincian tiap kolom. Kesalahan ditunjukkan di kolom tempat kesalahan itu terjadi.
    3. Periksa daftar waktu eksekusi berikutnya. Pilih zona waktu tempat server berjalan, dan waktu mulai lain jika Anda ingin melihat lebih jauh ke depan.

    Membaca jadwal cron

    Untuk menjelaskan ekspresi cron, perlu dipahami dulu cara kerjanya: cron memeriksa tabelnya sekali per menit dan menjalankan setiap job yang kelima kolomnya cocok dengan waktu saat itu, dengan satu pengecualian untuk dua kolom hari yang dijelaskan di bawah. Jadi */15 9-17 * * 1-5 berarti: pada menit 0, 15, 30 dan 45, pada jam 9 sampai 17, pada tanggal berapa pun, di bulan apa pun, Senin sampai Jumat. Eksekusi terakhir dalam sehari terjadi pukul 17:45, karena kolom jam mencakup seluruh jam ke-17.

    Alat ini mengurai setiap kolom seperti Vixie cron dan cronie, yang dipakai sebagian besar distribusi Linux. Nama bulan dan hari diterima dalam huruf besar maupun kecil, dan 7 dihitung sebagai Minggu. Langkah setelah satu angka, seperti 5/10, dibaca sebagai 5-59/10 seperti di banyak versi cron; beberapa versi lama menolaknya, jadi alat ini mengingatkan Anda untuk menuliskan rentangnya secara lengkap. Rentang harus dari kecil ke besar: FRI-MON ditandai, bukan diputar balik, karena cron standar tidak memutar rentang.

    Waktu eksekusi berikutnya dihitung dengan menelusuri kalender di zona waktu yang Anda pilih, sehingga ekspresi yang hanya bisa cocok pada 29 Februari langsung menemukan tahun kabisat berikutnya, dan ekspresi yang tidak akan pernah cocok, seperti 0 0 31 2 *, dilaporkan tidak pernah berjalan.

    Tips

    Pertanyaan umum

    Apa arti kelima kolom cron?

    Berurutan: menit (0-59), jam (0-23), tanggal (1-31), bulan (1-12 atau JAN-DEC) dan hari dalam seminggu (0-7 atau SUN-SAT, dengan 0 dan 7 sama-sama Minggu). Setiap kolom menerima satu nilai, daftar seperti 1,15, rentang seperti 9-17, langkah seperti */15 atau 0-30/10, atau * untuk semua nilai.

    Mengapa job saya berjalan di lebih banyak hari dari yang saya kira?

    Jika kolom tanggal dan kolom hari dalam seminggu sama-sama dibatasi, cron berjalan pada hari yang cocok dengan salah satunya, bukan keduanya. 0 9 1 * 1 berjalan setiap tanggal 1 dan setiap hari Senin. Begitulah perilaku Vixie cron dan cronie. Keanehan dari aturan yang sama: kolom yang diawali *, seperti */2, dianggap tidak dibatasi, sehingga kedua kolom harus cocok.

    Zona waktu apa yang dipakai cron?

    Zona waktu mesin atau container tempat cron berjalan, kecuali crontab mengatur CRON_TZ atau TZ. Banyak server berjalan dengan UTC, jadi periksa itu sebelum memercayai waktu yang Anda lihat. Pilih zona server di daftar untuk melihat waktu eksekusinya.

    Apa yang terjadi saat jam berubah karena daylight saving time?

    Daftar mengikuti jam di zona yang Anda pilih: waktu yang terlewati saat jam dimajukan tidak dicantumkan, dan waktu yang terjadi dua kali saat jam dimundurkan dicantumkan sekali. Vixie cron dan cronie menjalankan job yang dijadwalkan di jam yang terlewati segera setelah perubahan dan tidak mengulang job di jam yang terulang; scheduler lain bisa berbeda. Sebuah catatan muncul jika periode yang ditampilkan mencakup perubahan jam.

    Apakah alat ini mendukung detik atau sintaks Quartz?

    Tidak. Ekspresi dengan enam atau tujuh kolom, atau yang memakai ?, L, W atau #, berasal dari Quartz, Spring dan scheduler sejenis, yang kolom pertamanya adalah detik. Alat ini memberi tahu Anda alih-alih menebak, karena membacanya sebagai cron standar akan menghasilkan jadwal yang salah.

    Apa arti @daily, @hourly dan pintasan lainnya?

    @hourly adalah 0 * * * *, @daily dan @midnight adalah 0 0 * * *, @weekly adalah 0 0 * * 0, @monthly adalah 0 0 1 * *, serta @yearly dan @annually adalah 0 0 1 1 *. @reboot berjalan sekali saat layanan cron dimulai, jadi tidak ada waktu yang bisa ditampilkan.