Alat pembangun · Penjana Crontab
Sintaks langkah dan julat cron: */15, 1-5, senarai dan cara ia digabungkan
· Bagaimana ia berfungsi
cron penjadualan aliran kerja pembangun
Langkah, julat dan senarai ialah bahagian sintaks cron yang orang salin tanpa memahami. Siaran ini menerangkan setiap satu, cara mereka bersarang dan kejutan seperti */7 bukan bermaksud 'setiap tujuh hari'.
Setiap 15 minit, tetapi sahaja 9 hingga 5 — ungkapan naif menyala pada waktu malam juga
“Setiap lima belas minit pada waktu pejabat” mengandungi dua sekatan bebas. Medan minit memerlukan markah suku jam, manakala medan jam memerlukan rentang terhad. Menulis sahaja `*/15 * * * *` menyelesaikan separuh masa pertama dan masih menghasilkan larian sepanjang malam. Ungkapan mesti mengekod kedua-dua kekangan sebelum ia menyatakan apa-apa tentang hari bekerja.
ToolAcre menghuraikan lima medan jadual, bukan arahan. Mulakan dengan `*/15 9-17 * * 1-5`, kemudian periksa ayat dan pratonton jalankan seterusnya. Semakan itu menangkap kesilapan biasa meletakkan `9-17` dalam kedudukan minit atau membiarkan medan hari bekerja tanpa had. Penjana mencipta dan menerangkan ungkapan; ia tidak memasang atau melaksanakan kerja.
Julat — 1-5 dan 9-17 sebagai rentang inklusif dalam satu medan
Tanda sempang mencipta julat inklusif dalam satu medan. `9-17` dalam kedudukan jam mengembang kepada sembilan nilai: 9 hingga 17. Begitu juga, `1-5` dalam kedudukan hari bekerja berkembang kepada Isnin hingga Jumaat kerana penghurai ini memetakan Ahad kepada 0, Isnin hingga 1 dan seterusnya. Kedua-dua titik akhir mengambil bahagian, jadi 17:00 berada dalam julat jam yang dipilih.
Julat tidak boleh membalut merentasi sempadan medan. Penghurai menolak bentuk ke belakang seperti `17-9` dan mencadangkan pembahagian nilai yang dikehendaki kepada dua item senarai. Penolakan itu berguna kerana peraturan pembungkusan berbeza antara produk penjadualan. Di sini julat sentiasa bergerak ke atas antara nilai yang sudah memenuhi had angka atau nama yang diterima medan.
Langkah — */15 dan 9-17/2, dan sebab langkah dimulakan semula pada sempadan bawah medan dan bukannya mengira secara berterusan
Garis miring memilih setiap nilai ke-n dari titik permulaan. `*/15` dalam medan minit bermula pada minimumnya, sifar dan berkembang kepada 0, 15, 30 dan 45. `9-17/2` bermula pada 9 dan menghasilkan 9, 11, 13, 15 dan 17. Langkah kepunyaan satu bidang; ia tidak mengira minit berlalu merentasi sempadan jam.
Penghurai juga menerima permulaan kosong dengan satu langkah. `5/15` dalam medan minit bermaksud 5, 20, 35 dan 50 kerana titik akhir atas tersirat ialah 59. Langkah mestilah nombor bulat positif dan tidak boleh melebihi saiz julat penuh medan. Langkah sifar, bukan angka atau bersaiz besar menerima ralat pengesahan khusus medan dan bukannya tafsiran yang diteka.
Senarai boleh menggabungkan nilai, julat dan julat berperingkat dalam satu medan
Koma menyatukan beberapa keping dalam medan yang sama. `1,15,30` ringkas menamakan nilai tiga minit. Input yang lebih terperinci boleh menggabungkan nilai tunggal, julat inklusif dan julat berperingkat: `0,10-20/5,59` yang diuji berkembang kepada 0, 10, 15, 20 dan 59. Keputusan pendua dialih keluar dan nilai yang dikembangkan diisih sebelum pengiraan kemudian menggunakannya.
Tatabahasa ini adalah gubahan tetapi masih sempit. Setiap item koma mungkin mengandungi satu garis miring dan julat mesti mempunyai dua titik akhir yang tidak kosong. Koma sesat, berbilang garis miring atau julat yang belum selesai ditolak dengan alasan menamakan medan. Itu menjadikan ungkapan bercampur boleh disemak tanpa berpura-pura tanda baca cacat mempunyai makna konvensional.
Contoh yang berfungsi: */15 9-17 * * 1-5 — menyenaraikan minit yang dihasilkannya dan 17:45 edge case
Untuk `*/15 9-17 * * 1-5`, nilai minit ialah 00, 15, 30 dan 45; waktu adalah 09 hingga 17; dan nilai hari bekerja ialah Isnin hingga Jumaat. Pada setiap hari kerja yang disertakan, calon pertama ialah 09:00 dan yang terakhir ialah 17:45. Tiada 18:00 kerana 18 berada di luar julat jam.
Kelebihan larian terakhir menggambarkan sebab pengembangan medan mengalahkan trengkas perbualan. "Sembilan hingga lima" mungkin bermaksud berhenti di 17:00 kepada seorang pembaca dan masukkan jam lima jam penuh ke yang lain. Medan jam Cron memilih baldi jam, kemudian medan minit memilih kedudukan di dalamnya. Jika 17:45 tidak diingini, sempadan yang diingini memerlukan ungkapan atau logik bahagian arahan yang berbeza.
Langkah hari dalam bulan berkembang dari hari 1 setiap bulan; ia bukan selang minggu berlalu
`*/7` dalam hari bulan berkembang daripada minimum medan itu 1, menghasilkan 1, 8, 15, 22 dan 29 di mana tarikh tersebut wujud. Apabila bulan berikutnya bermula, medan sekali lagi bermula pada 1. Oleh itu, ia menerangkan tarikh kalendar yang dipilih, bukan selang tujuh hari yang terus meningkat. Februari dan bulan yang lebih pendek sahaja kekurangan beberapa tarikh yang tinggi.
Sintaks yang sama mempunyai nilai permulaan yang berbeza dalam medan lain. `*/7` minit bermula pada 0, manakala `*/7` hari dalam bulan bermula pada 1. Penghurai ToolAcre memperoleh jujukan daripada setiap spesifikasi medan dan pratontonnya mencari tarikh kalendar. Untuk irama mingguan sebenar, hadkan hari dalam minggu dan bukannya menganggap langkah hari bulan sebagai tempoh berlalu.
Pengendali yang tidak disokong ditolak dan bukannya ditafsirkan sebagai dialek cron lain
Penghurai lima medan ini tidak melaksanakan `L`, `W`, `#` atau `?`. Aksara tersebut tidak dibuang secara senyap dan tidak dipersembahkan sebagai sintaks crontab mudah alih. Enam medan juga ditolak, dengan penjelasan bahawa kedudukan utama tambahan tergolong dalam gaya penjadual berorientasikan saat dan bukannya format yang dibaca oleh laluan ini.
Sempadan itu disengajakan: minit, jam, hari dalam bulan, bulan dan hari dalam seminggu adalah tatabahasa kedudukan yang lengkap di sini. Sebelum mengalihkan ungkapan daripada penjadual lain, kira medannya dan kenal pasti pengendalinya. Penjana boleh mengesahkan dialeknya sendiri; ia tidak boleh memperakui Kuarza, sintaks kalendar systemd atau variasi perkhidmatan awan.
Bawa pulang: langkah bermaksud 'bermula dari bawah julat' — dan penjana menerangkan ungkapan langkah dalam perkataan yang boleh anda semak
Julat mentakrifkan rentang inklusif, cebisan cantum koma dan mengecilkan nilai sampel daripada permulaan khusus medan. Membaca operasi tersebut dalam susunan itu menukar token padat menjadi set terhingga yang boleh diperiksa. Ia juga menerangkan tepi seperti 17:45 tanpa bergantung pada frasa yang disalin yang pengarangnya mungkin bermaksud sesuatu yang lain.
Gunakan penjana sebagai permukaan semakan: masukkan ungkapan, baca penerangan, periksa amaran dan bandingkan lima larian jam dinding seterusnya di zon yang dimaksudkan. Kemudian letakkan lima medan yang disahkan di sebelah arahan sebenar dalam persekitaran anda sendiri. Pembinaan jadual dan pelaksanaan kerja kekal sebagai tanggungjawab berasingan.