Alat pembangun · Penjana Crontab
Contoh ungkapan Cron: setiap jam, setiap malam, hari bekerja, pertama bulan itu
· Bagaimana ia berfungsi
cron contoh penjadualan
Sepuluh jadual merangkumi kebanyakan crontab sebenar. Siaran ini memberikan ungkapan untuk setiap satu, menerangkan medan dan menunjukkan medan yang hampir selalu orang ramai tersilap.
Anda memerlukan 'pertama bulan di 06:00' dan hasil carian tidak bersetuju — satu set ungkapan yang disahkan dengan alasan
Jawapan yang disalin untuk "pertama bulan di 06:00" sahaja berguna jika setiap kedudukan boleh dibenarkan. Dalam susunan lima medan, `0 6 1 * *` bermaksud minit sifar, jam enam, hari dalam bulan satu, setiap bulan dan setiap hari bekerja. Membaca medan menghalang contoh menarik daripada menjadi pergantungan pengeluaran yang tidak dapat dijelaskan.
Contoh di sini kekal dalam tatabahasa yang digunakan oleh penghurai dan ujian ToolAcre. Ia adalah serpihan jadual, bukan definisi pekerjaan yang lengkap. Pelayar boleh menerangkannya dan menunjukkan calon jam dinding masa depan dalam zon yang dipilih, tetapi ia tidak mengetahui arahan, kebenaran atau hos yang akhirnya mungkin menggunakannya.
Setiap minit, setiap 5 minit, setiap jam — * * * * *, */5 * * * * dan 0 * * * *, dan mengapa 0 terkemuka itu penting
`* * * * *` memilih nilai setiap minit setiap jam dan tarikh. `*/5 * * * *` mengecilkan minit kepada 0, 5, 10 dan seterusnya melalui 55. `0 * * * *` sahaja memilih minit sifar, menghasilkan seorang calon di bahagian atas setiap jam. Oleh itu, sifar pendahuluan adalah perbezaan antara kedudukan enam puluh minit dan satu.
Ketiga-tiga bentuk muncul dalam sama ada pratetap atau sintaks yang diuji. Satu langkah berkembang dari sempadan bawah medan minit, manakala kad bebas mengembangkan setiap nilai yang dibenarkan daripada 0 hingga 59. Gunakan pratonton untuk memeriksa berjalan dengan ketat selepas sekarang; jangan membuat kesimpulan bahawa alat itu telah memulakan proses berulang semata-mata kerana ia boleh menghitung masa.
Setiap hari pada satu masa dan dua kali sehari — 30 2 * * * dan 0 6,18 * * *
Setiap hari di 02:30 ialah `30 2 * * *`: minit 30 dan jam 2 dengan medan kalendar tanpa had. Dua kali sehari di 06:00 dan 18:00 ialah `0 6,18 * * *`; koma menggabungkan dua nilai jam manakala minit kekal tetap. Kedua-duanya lebih mudah untuk disemak apabila senarai jam adalah eksplisit dan bukannya diduplikasi sebagai dua baris.
Zon waktu yang dipilih menukar detik yang ditunjukkan untuk medan jam dinding yang sama. ToolAcre mengira setiap calon sebagai waktu dinding tempatan dalam zon itu dan meninggalkan waktu tempatan yang tidak wujud semasa perubahan jam ke hadapan. Tingkah laku pratonton itu adalah milik alat ini; artikel itu tidak menyamaratakannya menjadi janji tentang setiap daemon.
Hari minggu dan hujung minggu — 0 8 * * 1-5 dan 0 10 * * 0,6, dengan kave penomboran Ahad
Hari minggu di 08:00 ialah `0 8 * * 1-5` dan pagi hujung minggu di 10:00 ialah `0 10 * * 0,6`. Penghurai ini menerima Ahad sebagai sama ada 0 atau 7 dan menormalkan kedua-duanya kepada nilai yang sama. Nama juga disokong, jadi `MON-FRI` boleh menggantikan `1-5` tanpa menukar hari minggu yang dikembangkan.
Elakkan daripada menetapkan hari dalam bulan pada masa yang sama melainkan kesatuan ATAU dikehendaki. `0 8 1 * 1-5` tidak bermakna hari biasa sahaja pada hari pertama. Ia termasuk yang pertama setiap bulan ditambah setiap hari bekerja. Penjana memberi amaran apabila kedua-dua medan hari dihadkan dan meletakkan "atau" dalam ayat yang terhasil.
Bulanan, suku tahunan dan tahunan - 0 6 1 * *, 0 6 1 1,4,7,10 * dan 0 0 1 1 *
Bulanan di 06:00 pada yang pertama ialah `0 6 1 * *`. Suku tahunan pada hari pertama Januari, April, Julai dan Oktober ialah `0 6 1 1,4,7,10 *`. Larian tengah malam tahunan pada Januari 1 ialah `0 0 1 1 *`, yang juga merupakan pengembangan yang digunakan oleh alias `@yearly` dan `@annually` yang disokong.
Contoh ini menggunakan hari yang wujud dalam setiap bulan yang dipilih. ToolAcre menerima gabungan mustahil sebagai sah dari segi sintaksis tetapi memberi amaran apabila, sebagai contoh, hari 30 digandingkan sahaja dengan Februari. Februari 29 menerima amaran tahun lompat. Oleh itu, kesahan kalendar muncul secara berasingan daripada tatabahasa medan dan bukannya tersembunyi di sebalik satu mesej tidak sah generik.
Penjadualan hari terakhir tidak dapat dinyatakan dengan pengendali lima medan yang disokong
Tatabahasa yang disokong tidak mempunyai pengendali hari terakhir. `L` ditolak dan bukannya diterjemahkan dan hari 31 gagal menampung bulan dengan tiga puluh hari atau Februari. Buku kerja mencadangkan ujian tarikh sebelah arahan, tetapi repositori ini tidak melaksanakan atau mengesahkan arahan, jadi artikel itu tidak membentangkan penyelesaian itu sebagai ciri penjana yang disokong.
Anggap "hari terakhir setiap bulan" sebagai keperluan yang melebihi bahasa ungkapan ini. Pilih penjadual atau strategi arahan yang didokumenkan oleh sasaran sebenar, dan ujinya di sana. ToolAcre kekal berguna untuk lima medan biasa di sekeliling keputusan itu, tetapi kejayaan pengesahan tidak dapat menghasilkan pengendali yang tidak dilaksanakan oleh penghurainya.
Medan detik dan operator asing ditolak oleh penghurai ini
Ungkapan klasik dalam laluan ini tidak mempunyai kedudukan saat atau tahun. Enam medan ditolak dengan panduan tentang gaya penjadual berorientasikan saat. Penghurai juga menolak `?`, `#`, `L` dan `W` kerana pembaca nilainya menerima nombor, nama tiga huruf yang disokong, julat, koma, garis miring dan kad bebas sahaja.
Oleh itu, keperluan kecil minit tidak boleh diwakili di sini. Ungkapan daripada penjadual lain juga tidak boleh diisytiharkan setara sahaja kerana ia kelihatan serupa. Kira kedudukan, semak sokongan operator dan bina semula set yang dimaksudkan dengan tatabahasa sasaran. Semantik yang ditinggalkan harus kekal sebagai jurang yang jelas, bukan anggaran yang tidak disengajakan.
Bawa pulang: bina daripada sepuluh ini — dan gunakan penjana Crontab untuk menyesuaikan satu dan baca semula hasilnya
Jadual biasa menjadi lebih selamat apabila setiap token mempunyai sebab: sifar menyematkan sempadan, koma menamakan alternatif, julat merangkumi kedua-dua hujung dan bintang membuka medan. Pratetap menyediakan beberapa titik permulaan, termasuk setiap minit, suku jam, setiap jam, harian, waktu pejabat hari bekerja, Ahad, bulanan dan borang tahunan.
Sesuaikan pratetap terdekat, baca ayat yang dijana dan imbas lima kali seterusnya dalam zon yang dimaksudkan mesin. Urutan itu mengesahkan niat ekspresi sambil mengekalkan penggunaan di luar pelayar. Contoh yang baik bukan sahaja sedia salinan; ia cukup kecil sehingga pengulas lain boleh membina semula sebab setiap medan ada.