Alat pengembang · Generator crontab
Contoh ekspresi cron: setiap jam, setiap malam, hari kerja, pertama setiap bulan
· Cara kerjanya
cron contoh penjadwalan
Sepuluh jadwal mencakup sebagian besar crontab nyata. Posting ini memberikan ekspresi untuk masing-masing bidang, menjelaskan bidangnya, dan menunjukkan bidang yang hampir selalu salah oleh orang-orang.
Anda memerlukan 'pertama bulan ini pada 06:00' dan hasil penelusurannya tidak sesuai — serangkaian ekspresi terverifikasi dengan alasan
Salinan jawaban untuk “pertama bulan ini di 06:00” hanya berguna jika setiap posisi dapat dibenarkan. Dalam urutan lima bidang, `0 6 1 * *` berarti menit ke nol, jam ke enam, hari di bulan pertama, setiap bulan, dan setiap hari kerja. Membaca kolom mencegah contoh menarik menjadi ketergantungan produksi yang tidak dapat dijelaskan.
Contoh di sini tetap sesuai dengan tata bahasa yang digunakan oleh parser dan pengujian ToolAcre. Itu adalah bagian jadwal, bukan definisi pekerjaan yang lengkap. Browser dapat mendeskripsikannya dan menampilkan calon jam dinding masa depan di zona yang dipilih, namun browser tidak mengetahui perintah, izin, atau host yang pada akhirnya mungkin menggunakannya.
Setiap menit, setiap 5 menit, setiap jam — * * * * *, */5 * * * * dan 0 * * * *, dan mengapa 0 di awal penting
`* * * * *` memilih nilai setiap menit pada setiap jam dan tanggal. `*/5 * * * *` mempersempit menit menjadi 0, 5, 10 dan seterusnya hingga 55. `0 * * * *` hanya memilih menit ke-0, menghasilkan satu kandidat paling atas setiap jamnya. Oleh karena itu, angka nol di depan adalah selisih antara posisi enam puluh menit dan satu.
Ketiga bentuk tersebut muncul dalam preset atau sintaksis yang diuji. Sebuah langkah diperluas dari batas bawah kolom menit, sementara karakter pengganti memperluas setiap nilai yang diizinkan dari 0 hingga 59. Gunakan pratinjau untuk memeriksa proses secara ketat setelah sekarang; jangan menyimpulkan bahwa alat tersebut telah memulai proses berulang hanya karena alat tersebut dapat menghitung waktu.
Setiap hari pada satu waktu dan dua kali sehari — 30 2 * * * dan 0 6,18 * * *
Harian di 02:30 adalah `30 2 * * *`: menit 30 dan jam 2 dengan bidang kalender tidak terbatas. Dua kali sehari pada 06:00 dan 18:00 adalah `0 6,18 * * *`; koma menggabungkan nilai dua jam sementara menit tetap. Keduanya lebih mudah untuk ditinjau ketika daftar jamnya eksplisit daripada diduplikasi dalam dua baris.
Zona waktu yang dipilih mengubah waktu yang ditampilkan untuk bidang jam dinding yang sama. ToolAcre menghitung setiap kandidat sebagai waktu dinding lokal di zona tersebut dan menghilangkan waktu lokal yang tidak ada selama perubahan jam maju. Perilaku pratinjau tersebut milik alat ini; artikel ini tidak menggeneralisasinya menjadi janji tentang setiap daemon.
Hari kerja dan akhir pekan — 0 8 * * 1-5 dan 0 10 * * 0,6, dengan peringatan penomoran hari Minggu
Hari kerja di 08:00 adalah `0 8 * * 1-5`, dan pagi hari akhir pekan di 10:00 adalah `0 10 * * 0,6`. Parser ini menerima hari Minggu sebagai 0 atau 7 dan menormalkan keduanya ke nilai yang sama. Nama juga didukung, sehingga `MON-FRI` dapat menggantikan `1-5` tanpa mengubah hari kerja yang diperluas.
Hindari menetapkan hari dalam sebulan pada waktu yang sama kecuali jika diperlukan gabungan OR. `0 8 1 * 1-5` bukan berarti hari kerja hanya pada hari pertama. Ini mencakup hari pertama setiap bulan ditambah setiap hari kerja. Generator memperingatkan setiap kali kedua kolom hari dibatasi dan menempatkan “atau” dalam kalimat yang dihasilkan.
Bulanan, triwulanan, dan tahunan — 0 6 1 * *, 0 6 1 1,4,7,10 * Dan 0 0 1 1 *
Bulanan di 06:00 pada tanggal pertama adalah `0 6 1 * *`. Triwulanan pada hari pertama bulan Januari, April, Juli dan Oktober adalah `0 6 1 1,4,7,10 *`. Pertunjukan tengah malam tahunan pada 1 Januari adalah `0 0 1 1 *`, yang juga merupakan perluasan yang digunakan oleh alias `@yearly` dan `@annually` yang didukung.
Contoh berikut menggunakan hari yang ada pada setiap bulan yang dipilih. ToolAcre menerima kombinasi yang mustahil sebagai sah secara sintaksis tetapi memperingatkan ketika, misalnya, hari 30 hanya dipasangkan dengan bulan Februari. Februari 29 menerima peringatan tahun kabisat. Oleh karena itu, validitas kalender muncul secara terpisah dari tata bahasa lapangan, bukannya disembunyikan di balik satu pesan umum yang tidak valid.
Penjadwalan hari terakhir tidak dapat dilakukan dengan lima operator lapangan yang didukung
Tata bahasa yang didukung tidak memiliki operator hari terakhir. `L` ditolak daripada diterjemahkan, dan hari 31 gagal mencakup bulan dengan tiga puluh hari atau Februari. Buku kerja mengusulkan pengujian tanggal sisi perintah, namun repositori ini tidak menjalankan atau memverifikasi perintah, sehingga artikel tidak menyajikan solusi tersebut sebagai fitur generator yang didukung.
Perlakukan “hari terakhir setiap bulan” sebagai persyaratan yang melampaui bahasa ekspresi ini. Pilih penjadwal atau strategi perintah yang didokumentasikan oleh target sebenarnya, dan uji di sana. ToolAcre tetap berguna untuk lima bidang biasa di sekitar keputusan itu, tetapi keberhasilan validasi tidak dapat menghasilkan operator yang tidak diimplementasikan oleh parsernya.
Bidang detik dan operator asing ditolak oleh parser ini
Ekspresi klasik pada rute ini tidak memiliki posisi detik atau tahun. Enam bidang ditolak dengan panduan tentang gaya penjadwal berorientasi detik. Parser juga menolak `?`, `#`, `L` dan `W` karena pembaca nilainya hanya menerima angka, hanya mendukung nama tiga huruf, rentang, koma, garis miring, dan wildcard.
Oleh karena itu, persyaratan sub-menit tidak dapat diwakilkan di sini. Ekspresi dari penjadwal lain juga tidak dapat dinyatakan setara hanya karena tampilannya serupa. Hitung posisi, periksa dukungan operator dan bangun kembali set yang diinginkan dengan tata bahasa target. Semantik yang dihilangkan harus tetap menjadi kesenjangan yang jelas, bukan perkiraan yang tidak disengaja.
Kesimpulan: bangun dari sepuluh hal ini — dan gunakan generator Crontab untuk mengadaptasinya dan membaca kembali hasilnya
Jadwal umum menjadi lebih aman ketika setiap token memiliki alasan: tidak ada pin pada batas, koma memberi nama alternatif, rentang menyertakan kedua ujungnya, dan bintang membuka bidang. Preset menyediakan beberapa titik awal, termasuk formulir setiap menit, seperempat jam, setiap jam, harian, hari kerja, Minggu, bulanan, dan tahunan.
Sesuaikan preset terdekat, baca kalimat yang dihasilkan dan pindai lima kali berikutnya di zona yang diinginkan mesin. Urutan tersebut memverifikasi maksud ekspresi sekaligus menjaga penerapan di luar browser. Sebuah contoh yang baik tidak hanya siap untuk disalin; ukurannya cukup kecil sehingga pengulas lain dapat merekonstruksi alasan setiap bidang ada di sana.