tigtools

Penjelas Ungkapan Cron

Masukkan jadual cron 5 medan untuk membaca maksudnya dan masa larian seterusnya. Semuanya dikira dalam pelayar anda.

Berjalan dalam pelayar anda Tanpa pendaftaran

Lima medan: minit, jam, hari dalam bulan, bulan, hari dalam minggu. Makro seperti @daily juga berfungsi.

Jadual biasa

Maksud

Setiap 15 minit, antara 09:00 dan 17:59, pada Isnin hingga Jumaat.

Medan

Minit
*/15
Jam
9-17
Hari dalam bulan
*
Bulan
*
Hari dalam minggu
1-5
Zon waktu

10 laksanaan seterusnya

    Cara menggunakannya

    1. Taip atau tampal ungkapan cron, atau pilih salah satu jadual biasa.
    2. Baca maksud dalam bahasa mudah. Medan yang tidak sah dinyatakan berserta sebabnya.
    3. Semak 10 masa larian seterusnya, dipaparkan dalam zon waktu tempatan anda. Tukar kepada UTC jika pelayan anda berjalan dalam UTC.
    4. Salin masa larian untuk dikongsi, atau laraskan ungkapan sehingga jadual mengikut keperluan anda.

    Cara ia berfungsi

    Ungkapan cron standard, seperti yang digunakan oleh crontab pada Linux (Vixie cron dan cronie) serta banyak penjadual CI dan pengehosan, mempunyai lima medan yang dipisahkan oleh ruang: minit (0–59), jam (0–23), hari dalam bulan (1–31), bulan (1–12 atau JAN–DEC) dan hari dalam minggu (0–7 atau SUN–SAT, iaitu kedua-dua 0 dan 7 bermaksud Ahad). Setiap medan menerima * untuk setiap nilai, satu nilai, julat seperti 1-5, senarai seperti 1,15,30, dan langkah seperti */15 (setiap nilai ke-15) atau 9-17/2 (setiap dua jam dari 9 hingga 17). Nama tidak peka huruf besar/kecil. Pintasan @yearly (atau @annually), @monthly, @weekly, @daily (atau @midnight) dan @hourly masing-masing bermaksud 0 0 1 1 *, 0 0 1 * *, 0 0 * * 0, 0 0 * * * dan 0 * * * *.

    Medan hari-dalam-bulan dan hari-dalam-minggu mengikut peraturan yang mengejutkan ramai orang. Jika salah satu medan bermula dengan *, sesuatu hari mesti memenuhi kedua-dua medan. Jika kedua-dua medan terhad, sesuatu hari sepadan apabila salah satu daripadanya dipenuhi: 0 0 13 * 5 berjalan pada 13 haribulan setiap bulan dan juga pada setiap Jumaat, bukan hanya pada Jumaat 13. Oleh sebab ujiannya ialah sama ada medan bermula dengan *, langkah seperti */2 juga dikira tanpa sekatan. Ini sepadan dengan Vixie cron dan cronie; beberapa penjadual lain berkelakuan berbeza.

    Waktu pelaksanaan seterusnya dikira dalam zon waktu pelayar anda, atau dalam UTC, iaitu apa yang digunakan oleh kebanyakan pelayan dan penjadual awan. Cron sendiri menggunakan zon waktu mesin tempat ia berjalan. Semasa perubahan masa jimat siang, daemon cron sebenar berbeza-beza; alat ini meninggalkan waktu tempatan yang tidak wujud apabila jam dilaraskan ke hadapan dan menyenaraikan jam berulang sekali sahaja. Sintaks lanjutan tidak disokong: ungkapan Quartz enam atau tujuh medan dengan saat atau tahun, dan aksara khas ?, L, W dan #.

    Contoh

    Pemeriksaan kesihatan waktu pejabat

    */15 9-17 * * 1-5 bermaksud setiap 15 minit antara 09:00 dan 17:59, Isnin hingga Jumaat. Pelaksanaan terakhir setiap hari ialah pada 17:45.

    Sandaran setiap malam

    30 2 * * * dilaksanakan pada 02:30 setiap hari. Jika pelayan menggunakan UTC dan anda berada di New York, senarai pelaksanaan seterusnya dalam mod UTC menunjukkan waktu yang sebenarnya akan digunakan oleh pelayan.

    Perangkap medan hari

    0 9 1 * 1 kelihatan seperti “9:00 pada hari pertama bulan jika hari itu Isnin”, tetapi ia berjalan pada 09:00 pada 1 haribulan setiap bulan dan juga setiap Isnin. Untuk berjalan hanya pada Isnin pertama, jadualkan 0 9 1-7 * * dan semak hari dalam minggu di dalam skrip.

    Soalan Lazim

    Apakah maksud */5 dalam cron?

    Ia bermaksud setiap nilai ke-5 bagi medan itu, bermula dari nilai terendah. Dalam medan minit, */5 berjalan pada minit 0, 5, 10 … 55. Dalam medan jam, */5 berjalan pada 0, 5, 10, 15 dan 20, jadi jurang dari 20:00 ke tengah malam ialah empat jam, bukan lima.

    Mengapa tugasan saya berjalan pada lebih banyak hari daripada yang dijangka?

    Apabila kedua-dua medan hari dalam bulan dan hari dalam minggu dihadkan, cron berjalan pada hari yang sepadan dengan salah satu daripadanya. Contohnya, 0 0 15 * 1 berjalan pada 15 haribulan dan pada setiap Isnin. Tetapkan salah satu daripada dua medan itu kepada * supaya hanya medan yang satu lagi diperlukan.

    Zon waktu manakah yang digunakan oleh cron?

    Zon waktu sistem pelayan yang menjalankan daemon cron, kecuali jika crontab menetapkan CRON_TZ atau TZ (disokong oleh cronie). Penjadual awan selalunya menggunakan UTC secara lalai. Gunakan suis UTC untuk melihat masa yang akan digunakan oleh pelayan UTC.

    Bolehkah saya menggunakan medan saat atau tahun?

    Tidak dalam cron standard, yang mempunyai resolusi satu minit dan lima medan. Format enam dan tujuh medan dengan saat dan tahun dimiliki oleh Quartz, Spring dan pustaka yang serupa dan tidak disokong oleh alat ini.

    Adakah 0 atau 7 hari Ahad?

    Kedua-duanya. Dalam medan hari dalam minggu, 0 dan 7 kedua-duanya bermaksud Ahad, 1 ialah Isnin dan 6 ialah Sabtu. Anda juga boleh menulis nama tiga huruf SUN hingga SAT.

    Privasi

    Ungkapan dihurai dan masa larian dikira dalam pelayar anda. Tiada apa yang anda masukkan dimuat naik, disimpan atau disertakan dalam analitik.