Alat pembangun · Penjana Crontab
medan crontab(5): apa yang POSIX tentukan dan apakah sambungan Vixie
· Latar belakang
cron mudah alih pengesahan
Bukan setiap ciri cron adalah standard. Siaran ini memisahkan perkara yang diperlukan oleh spesifikasi crontab POSIX daripada sambungan (langkah, nama, nama panggilan) yang ditambahkan oleh Vixie cron dan kebanyakan sistem Linux diandaikan.
Ungkapan ToolAcre yang sah masih boleh tidak disokong oleh penjadual lain
Jadual yang melepasi ToolAcre telah memuaskan penghurai ini, bukan setiap pelaksanaan cron. Mudah alih bermula dengan pernyataan sederhana itu. Laluan ini menerima tepat lima medan dan tatabahasa token yang ditentukan. Perkakas sasaran, perkhidmatan atau rangka kerja mungkin menerima kurang, lebih banyak atau sesuatu yang berbeza dari segi struktur.
Kekalkan hasil pelayar sebagai satu bukti: ungkapan, perihalan, amaran dan zon pratonton. Sebelum penggunaan, bandingkan dokumentasi sasaran dan jalankan ujian yang tidak berbahaya. Pengesahan menjadi berbahaya sahaja apabila isyarat hijau tempatan dipromosikan menjadi jaminan keserasian universal.
Repositori tidak menetapkan perkara yang POSIX perlukan
Buku kerja memisahkan keperluan POSIX daripada sambungan, tetapi tiada spesifikasi POSIX muncul dalam sumber repositori. Tingkah laku ToolAcre tidak dapat membuktikan yang mempunyai mandat standard. Oleh itu bahagian ini menerangkan sintaks yang dilaksanakan tanpa memberikannya kepada badan piawai.
Julat angka yang dilaksanakan ialah 0–59 minit, 0–23 jam, 1–31 hari dalam bulan, 1–12 bulan dan 0–7 hari minggu. Kad bebas, nilai tunggal, julat inklusif, senarai koma, langkah kad bebas, langkah julat dan nilai permulaan kosong dengan langkah semuanya dihuraikan dan diuji.
Nama, langkah, Ahad 7 dan alias dilaksanakan di sini tanpa tuntutan sejarah piawai
Nama bulan JAN hingga DEC dan nama hari minggu SUN hingga SAT adalah tidak sensitif huruf. Nama boleh muncul bersendirian, dalam senarai dan dalam julat. Hari minggu 7 diterima sebagai Ahad dan dinormalkan kepada 0. Itu adalah sifat boleh diperhatikan bagi `parseField`, tidak kira cara pelaksanaan lain mengklasifikasikannya.
Jadual alias mengembang `@yearly`, `@annually`, `@monthly`, `@weekly`, `@daily`, `@midnight` dan `@hourly`. `@reboot` sengaja ditolak kerana ia tidak mempunyai jadual kalendar untuk dipratonton. Perkataan di-tanda yang tidak diketahui menerima ralat menamakan senarai yang disokong.
Sokongan tugasan persekitaran berada di luar penghurai ini
Tugasan persekitaran bukan sebahagian daripada tatabahasa ungkapan ini. Kotak input menjangkakan satu jadual dan `parseCron` membahagikannya kepada lima bahagian selepas menyelesaikan alias yang disokong. Baris `KEY=value` tidak boleh diuji untuk pengembangan, petikan atau mudah alih melalui laluan ini.
Peninggalan itu menghalang tuntutan piawaian palsu. Fail crontab yang lengkap boleh mengandungi binaan yang tidak pernah dilihat oleh alat ekspresi sahaja. Semak secara berasingan terhadap sasaran. Ralat medan tepat ToolAcre tidak boleh digunakan semula sebagai pertimbangan tentang baris yang tidak berkaitan dalam fail yang lebih besar.
Semak tatabahasa sasaran dan gunakan ujian jadual yang tidak berbahaya
Pemeriksaan sasaran hendaklah bermula dengan kiraan medan dan pengendali. Sahkan sama ada nama, Ahad 7, langkah slash dan alias at-sign diterima. Kemudian pasang tindakan boleh diperhatikan yang tidak berbahaya untuk masa terdekat, alih keluar tindakan itu selepas bukti ditangkap dan bandingkan hasil sasaran dengan ungkapan yang dimaksudkan.
Jangan uji kemudahalihan dengan perintah sensitif atau dengan menunggu tarikh tahunan yang jarang berlaku. Pilih siasatan selamat terkecil yang membezakan sokongan tatabahasa. ToolAcre boleh membantu membina jadual itu dan menerangkannya, manakala larian sasaran menetapkan bahagian yang tidak diketahui oleh pelayar.
Contoh yang berfungsi: borang langkah dan senarai eksplisit di bawah tatabahasa ToolAcre
Untuk setiap lima minit, ToolAcre menerima `*/5 * * * *`. Ia juga menerima senarai minit eksplisit `0,5,10,15,20,25,30,35,40,45,50,55 * * * *`. Penghuraian mengembangkan kedua-dua medan minit kepada dua belas nilai yang sama, jadi calon larian seterusnya sepadan di bawah segera dan zon permulaan yang sama.
Senarai eksplisit boleh berfungsi sebagai calon sandaran apabila sasaran tidak mempunyai sintaks langkah, tetapi repositori ini tidak dapat mengesahkan sokongan senarai sasaran tersebut. Bandingkan kedua-dua borang dalam ToolAcre untuk kesetaraan semantik, kemudian sahkan mana-mana bentuk dokumen destinasi. Kesetaraan di sini bukan bukti mudah alih di sana.
Sintaks enam medan ditolak; semantik luarannya tidak didokumenkan di sini
Medan keenam tidak diterima. Ralat menunjukkan bahawa gaya saat terkemuka tergolong dalam input seperti Quartz atau systemd, tetapi penghurai tidak melaksanakan tatabahasa tersebut. Ia tidak mempunyai medan tahun dan tiada pengendali `?`, `L`, `W` atau `#`.
Kira medan sebelum mencuba terjemahan. Jika sintaks yang tidak disokong membawa maksud penjadualan, penulisan semula lima medan yang jelas mungkin menjadi rugi. Gunakan dokumentasi dan ujian untuk penjadual sumber, kemudian nyatakan keperluan yang boleh diwakili oleh tatabahasa sasaran ToolAcre sahaja. Perkara lain harus kekal sebagai ketidakserasian yang jelas.
Bawa pulang: ketahui ciri yang merupakan sambungan — dan gunakan penjana untuk membina dan menyemak kedua-dua borang apabila mudah alih penting
Mudah alih ialah perbandingan, bukan label yang dibenamkan dalam ungkapan. ToolAcre memberikan satu sisi yang diuji dengan baik: lima kedudukan, sempadan angka, nama yang dipilih, julat boleh gubah/lists/steps dan tujuh alias. Ia juga memberikan penolakan yang jelas untuk bentuk yang cacat atau asing.
Gunakan kontrak itu untuk membuat alasan dengan tepat, kemudian sahkan pihak lain. Senarai eksplisit dan satu langkah boleh sama dalam penghurai ini manakala sahaja satu yang berfungsi di tempat lain. Melaporkan sempadan dialek adalah lebih boleh diambil tindakan daripada menggunakan standard yang sebenarnya tidak diperolehi oleh artikel.