Penukar Percuma

Ungkapan Cron Penjana

Jana, terangkan dan sahkan ungkapan cron serta-merta dalam penyemak imbas anda. Pembina visual dan penghurai ekspresi — percuma, peribadi dan sisi klien.

Ungkapan Cron
0 */6 * * *
Penerangan yang boleh dibaca manusia
Every minute
5 Larian Berjadual Seterusnya
Calculating...

Tentang alat ini

Ungkapan cron ialah lima (atau enam, bergantung pada sistem) medan yang dipisahkan oleh ruang yang menerangkan jadual: minit, jam, hari dalam bulan, bulan dan hari dalam minggu. Setiap medan menerima nilai angka, julat, senarai, kenaikan dan kad bebas. Cron telah menjadi format penjadualan Unix de facto sejak akhir 1970-an dan kini digunakan jauh melebihi Unix — oleh Kubernetes CronJobs, GitHub Actions, peraturan AWS EventBridge, kerja Jenkins dan hampir setiap sistem penjadualan lain dalam pengeluaran.

Membaca dan menulis ungkapan cron dengan tangan adalah terdedah kepada kesilapan. Medan adalah kedudukan, interaksi hari dalam bulan dan hari dalam minggu tidak jelas (nilai dalam mana-mana medan mencetuskan tugas, bukan kedua-duanya), dan kesilapan secara senyap menghasilkan jadual yang kelihatan betul tetapi menyala pada masa yang salah. Penjana yang menterjemah jadual bahasa Inggeris biasa kepada sintaks cron yang betul mengelakkan kesilapan ini.

Alat ini menawarkan dua arah: membina ungkapan cron daripada borang mesra (setiap hari Isnin jam 9 PG, setiap 5 minit semasa waktu perniagaan) dan menerangkan ungkapan cron sedia ada dalam istilah manusia. Kedua-duanya berjalan dalam penyemak imbas anda tanpa sebarang interaksi pelayan.

Mengapa Menggunakan Penjana Cron

Sintaks Cron adalah padat dan tidak memaafkan. Kesilapan biasa termasuk penomboran hari dalam minggu yang mengelirukan (Ahad ialah 0 atau 7 bergantung pada sistem), melupakan penggunaan semantik ATAU hari bulan dan hari minggu itu dan salah faham sintaks kenaikan (*/5 bermakna setiap 5 bermula pada 0). Penjana menangkap ini melalui pembinaan — ungkapan yang dihasilkan sepadan dengan apa yang anda terangkan dalam borang.

Membaca ungkapan sedia ada juga sukar. Jadual seperti 0 9 * * 1-5 berbunyi setiap hari bekerja pada 9 PG sebaik sahaja anda mengetahui sintaksnya, tetapi sesiapa yang tidak biasa dengan cron perlu mencari setiap medan. Menjelaskan ungkapan dalam istilah manusia adalah lebih pantas daripada mempelajari sintaks untuk interaksi sekali sahaja.

Cara menggunakan

Pilih corak jadual, dapatkan ungkapan cron.

  1. Pilih mod penjanaan: Bina ungkapan cron daripada input borang (kekerapan, masa, hari) atau terangkan ungkapan sedia ada dalam istilah manusia.
  2. Konfigurasikan jadual: Pilih kekerapan (setiap minit, setiap jam, setiap hari, setiap minggu, setiap bulan, tersuai). Tentukan masa, hari dan selang waktu yang diperlukan. Borang mengehadkan input kepada gabungan yang sah.
  3. Hasilkan atau terangkan: Penjanaan menghasilkan sintaks cron standard (5 medan). Penjelasan itu memecahkan setiap medan dan memberikan ringkasan yang boleh dibaca manusia.
  4. Gunakan dalam penjadual anda: Tampalkan ungkapan yang dijana ke dalam spesifikasi Kubernetes CronJob, jadual Tindakan GitHub, AWS EventBridge atau penjadual platform anda.

Kes Penggunaan Biasa

Butiran Teknikal

Cron standard mempunyai lima medan: minit (0–59), jam (0–23), hari bulan (1–31), bulan (1–12), hari dalam minggu (0–6 atau 0–7, kedua-duanya Ahad). Setiap medan menerima nilai tunggal, senarai dipisahkan koma, julat dengan sempang, kenaikan dengan / atau kad bebas dengan *.

Penggunaan hari dalam bulan dan hari dalam minggu ATAU semantik: jika salah satu ditetapkan kepada nilai bukan kad liar, tugas akan dijalankan apabila mana-mana padanan. Ini berlawanan dengan intuisi tetapi sepadan dengan gelagat cron POSIX. Menetapkan kedua-dua medan menghasilkan jadual yang lebih luas, bukan yang lebih sempit.

Sambungan berbeza mengikut pelaksanaan. Ada yang menerima medan keenam untuk beberapa saat (Kuarza, Spring); ada yang terima? sebagai alternatif kad bebas; ada yang termasuk pintasan @tahunan, @bulanan, @harian. Penjana menghasilkan cron 5 medan standard yang sesuai untuk kebanyakan sistem.

Amalan Terbaik

Soalan lazim

Apakah format ungkapan cron?
Cron standard menggunakan 5 medan: minit (0-59), jam (0-23), hari dalam bulan (1-31), bulan (1-12), hari dalam minggu (0-7, dengan 0 dan 7 adalah Ahad). Aksara khas: * (mana-mana), , (senarai), - (julat), / (langkah).
Bagaimanakah cara saya menetapkan kerja untuk dijalankan setiap 5 minit?
Gunakan */5 dalam medan minit: '*/5 * * * *'. /5 bermaksud 'setiap nilai ke-5'. Begitu juga, */15 = setiap 15 minit, */2 = setiap 2 minit.
Apakah zon waktu yang cron gunakan?
Cron biasanya menggunakan zon waktu sistem. Pada pelayan Linux, ini biasanya UTC melainkan dikonfigurasikan sebaliknya. Perkhidmatan awan (AWS, GCP) selalunya lalai kepada UTC. Sentiasa semak tetapan zon waktu sistem anda.
Adakah ini format yang sama yang digunakan oleh GitHub Actions?
Tindakan GitHub menggunakan format 5 medan yang sama tetapi berjalan dalam zon waktu UTC. AWS CloudWatch dan Kubernetes CronJobs juga menggunakan format ini. Sesetengah sistem seperti Kuarza menggunakan format medan 6-7 lanjutan dengan saat.
Apakah perbezaan antara 0 dalam hari dalam minggu dan 7?
Kedua-duanya bermakna hari Ahad. POSIX cron menerima 0–6 atau 0–7. Gunakan mana-mana pelaksanaan cron khusus anda lebih suka; kebanyakan menerima kedua-duanya.
Adakah penerang tepat untuk cron bukan standard?
Ia menyasarkan cron 5 medan standard. Sambungan kuarza (dengan saat), varian AWS EventBridge dan dialek lain mungkin tidak menghuraikan dengan betul. Sahkan terhadap dokumentasi sistem destinasi.
Adakah ungkapan saya dihantar ke pelayan?
Tidak. Penjanaan dan penjelasan berlaku dalam penyemak imbas anda.
Bagaimana pula dengan pintasan @tahunan, @bulanan?
Pelaksanaan cron biasa menyokong @yearly, @monthly, @weekly, @daily, @hourly dan @reboot sebagai pintasan untuk jadual biasa. Penjana menghasilkan ungkapan 5 medan standard; anda boleh menggantikan pintasan secara manual jika penjadual anda menerimanya.