Cara menggunakan
- Ketik atau tempel ekspresi cron, atau pilih salah satu jadwal umum.
- Baca penjelasan dalam bahasa sehari-hari. Kolom yang tidak valid akan ditandai beserta alasannya.
- Periksa 10 jadwal berikutnya yang ditampilkan dalam zona waktu lokal Anda. Beralih ke UTC jika server Anda menggunakan UTC.
- Salin waktu jadwal untuk dibagikan, atau ubah ekspresi hingga jadwalnya sesuai kebutuhan.
Cara kerja
Ekspresi cron standar, seperti yang digunakan crontab di Linux (Vixie cron dan cronie) serta banyak penjadwal CI dan hosting, memiliki lima kolom yang dipisahkan spasi: 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 berarti Minggu). Setiap kolom menerima * untuk setiap nilai, satu nilai, rentang seperti 1-5, daftar seperti 1,15,30, dan interval seperti */15 (setiap nilai ke-15) atau 9-17/2 (setiap dua jam dari pukul 9 hingga 17). Nama tidak membedakan huruf besar dan kecil. Pintasan @yearly (atau @annually), @monthly, @weekly, @daily (atau @midnight), dan @hourly masing-masing berarti 0 0 1 1 *, 0 0 1 * *, 0 0 * * 0, 0 0 * * *, dan 0 * * * *.
Kolom tanggal dan hari dalam seminggu mengikuti aturan yang kerap mengejutkan banyak orang. Jika salah satu kolom diawali dengan *, tanggal harus memenuhi kedua kolom. Jika kedua kolom memiliki batasan, jadwal berjalan pada tanggal yang memenuhi salah satunya: 0 0 13 * 5 berjalan pada tanggal 13 setiap bulan dan juga setiap hari Jumat, bukan hanya pada Jumat tanggal 13. Karena yang diperiksa adalah apakah kolom diawali dengan *, interval seperti */2 juga dianggap tidak dibatasi. Perilaku ini sesuai dengan Vixie cron dan cronie; beberapa penjadwal lain berperilaku berbeda.
Waktu jadwal berikutnya dihitung menggunakan zona waktu browser Anda atau UTC, yang digunakan oleh sebagian besar server dan penjadwal cloud. Cron sendiri menggunakan zona waktu mesin tempat cron berjalan. Perilaku daemon cron sebenarnya berbeda saat terjadi perubahan waktu musim panas; alat ini mengabaikan waktu lokal yang tidak ada saat jam dimajukan dan hanya menampilkan satu kali untuk jam yang berulang. Sintaks ekstensi tidak didukung: ekspresi Quartz dengan enam atau tujuh kolom yang menyertakan detik atau tahun, serta karakter khusus ?, L, W, dan #.
Contoh
Pemeriksaan kesehatan selama jam kerja
*/15 9-17 * * 1-5 berarti setiap 15 menit antara pukul 09.00 dan 17.59, Senin sampai Jumat. Jadwal terakhir setiap hari berjalan pukul 17.45.
Pencadangan malam
30 2 * * * berjalan setiap hari pukul 02.30. Jika server menggunakan UTC dan Anda berada di New York, daftar jadwal berikutnya dalam mode UTC menampilkan waktu yang benar-benar digunakan server.
Jebakan kolom hari
0 9 1 * 1 tampak berarti “pukul 9.00 pada tanggal satu jika hari itu Senin”, tetapi jadwal ini berjalan pukul 09.00 pada tanggal 1 setiap bulan dan juga setiap hari Senin. Untuk menjalankannya hanya pada hari Senin pertama, jadwalkan 0 9 1-7 * * lalu periksa hari dalam seminggu di dalam skrip.
Pertanyaan yang sering diajukan
Apa arti */5 dalam cron?
Artinya setiap nilai ke-5 dalam kolom, dimulai dari nilai terendah. Pada kolom menit, */5 berjalan pada menit ke-0, 5, 10 … 55. Pada kolom jam, */5 berjalan pada pukul 0, 5, 10, 15, dan 20, jadi jeda dari pukul 20.00 hingga tengah malam adalah empat jam, bukan lima.
Mengapa tugas saya berjalan lebih sering dari perkiraan?
Jika kolom tanggal dan hari dalam seminggu sama-sama memiliki batasan, cron berjalan pada hari yang cocok dengan salah satunya. Contohnya, 0 0 15 * 1 berjalan pada tanggal 15 dan setiap hari Senin. Atur salah satu dari dua kolom tersebut menjadi * agar jadwal hanya mengikuti kolom lainnya.
Zona waktu apa yang digunakan cron?
Cron menggunakan zona waktu sistem pada server yang menjalankan daemon cron, kecuali crontab mengatur CRON_TZ atau TZ (didukung oleh cronie). Penjadwal cloud biasanya menggunakan UTC sebagai zona waktu bawaan. Gunakan tombol UTC untuk melihat waktu yang akan digunakan server UTC.
Bisakah saya menggunakan detik atau kolom tahun?
Tidak dalam cron standar, yang memiliki resolusi satu menit dan lima kolom. Format enam dan tujuh kolom dengan detik dan tahun digunakan oleh Quartz, Spring, dan pustaka serupa, serta tidak didukung oleh alat ini.
Apakah 0 atau 7 berarti Minggu?
Keduanya. Pada kolom hari dalam seminggu, 0 dan 7 sama-sama berarti Minggu, 1 berarti Senin, dan 6 berarti Sabtu. Anda juga dapat menulis nama tiga huruf dari SUN hingga SAT.
Privasi
Ekspresi diproses dan waktu jadwal dihitung di browser Anda. Tidak ada yang Anda masukkan diunggah, disimpan, atau disertakan dalam analitik.