Cron Expression Builder
Buuin ang cron expression bawat field, basahin sa simpleng salita, tingnan ang mga susunod na takbo sa anumang time zone at i-convert sa systemd, Quartz o AWS.
Sa simpleng salita
Parehong nakatakda ang araw ng buwan at araw ng linggo: tumatakbo ang classic cron kapag ALINMAN sa dalawa ang tumugma (hindi pareho).
Builder
| Field | Mode | Halaga |
|---|---|---|
| Segundo0–59 | ||
| Minuto0–59 | ||
| Oras0–23 | ||
| Araw ng buwan1–31, L | ||
| Buwan1–12 o JAN–DEC | ||
| Araw ng linggo0–7 (0 at 7 = Linggo) o SUN–SAT |
Mga susunod na takbo
Iba pang format
- crontab line
- systemd OnCalendar=
- Quartz / Spring
- AWS EventBridge
Paano bumuo ng cron expression
- I-type o i-paste ang expression sa Cron expression, o pumili mula sa Mga preset. Tinatanggap din ang mga macro gaya ng
@dailyo@weekly. - O gamitin ang Builder: sa bawat field, pumili ng Mode (Bawat isa, Bawat N, Mga tiyak na halaga, Saklaw o Custom) at punan ang Halaga. Nag-a-update ang expression habang gumagawa ka, at ina-update naman ng pag-edit sa expression ang builder.
- Lagyan ng check ang Magdagdag ng seconds field (6 na field) kung sinusuportahan ng iyong scheduler ang mga segundo.
- Basahin ang iskedyul Sa simpleng salita, saka tingnan ang listahan ng Mga susunod na takbo. Piliin ang Time zone ng server na magpapatakbo ng job at Ilan ang ililistang takbo. Nasa Ingles ang paglalarawan ng iskedyul sa Filipino; ang mga petsa at oras ng susunod na takbo ay ipinapakita ayon sa wika ng page.
- Kopyahin ang expression gamit ang Kopyahin, o gamitin ang isa sa Iba pang format.
Ipinaliliwanag ang mga error bawat field, halimbawa “Minuto: wala sa saklaw ang 61 (0–59)”, kaya alam mo kung ano ang aayusin.
Ang limang cron field
Ang karaniwang (Vixie) cron line ay may limang field, saka ang command:
| Field | Mga pinapayagang halaga |
|---|---|
| Minuto | 0–59 |
| Oras | 0–23 |
| Araw ng buwan | 1–31 |
| Buwan | 1–12 o JAN–DEC |
| Araw ng linggo | 0–7 (0 at 7 ay Linggo) o SUN–SAT |
Tumatanggap ang bawat field ng * (bawat halaga), listahang 1,15, saklaw na 9-17, step na */15 (bawat 15 yunit) o saklaw na may step na 0-30/10. Kaya ang */15 9-17 * * 1-5 ay nangangahulugang bawat 15 minuto mula 9:00 hanggang 17:45, Lunes hanggang Biyernes.
May isang tuntuning ikinagugulat ng marami: kapag parehong may limitasyon ang Araw ng buwan at Araw ng linggo, tumatakbo ang classic cron kapag alinman sa dalawa ang tumugma. Ang 0 0 13 * 5 ay tumatakbo tuwing ika-13 at tuwing Biyernes, hindi lang tuwing Biyernes ika-13. Nagpapakita ang tool ng babala sa ganitong kaso.
Mga susunod na takbo at time zone
Gumagamit ang cron ng orasan ng makina, o ng setting na CRON_TZ/TZ ng crontab. Kinakalkula ang listahan ng Mga susunod na takbo para sa time zone na pipiliin mo, kasama ang mga pagbabago ng daylight saving time: sa pagbabago sa tagsibol, maaaring malaktawan ang job na nakatakda sa 2:30, at sa taglagas ay maaari itong tumakbo nang isa o dalawang beses depende sa implementation. Para sa mga job na dapat tumakbo nang eksaktong isang beses, mas mainam ang oras na labas sa 1:00–3:00 o gumamit ng UTC.
Vixie cron, systemd timer, Quartz at AWS
- Ang mga systemd timer ay gumagamit ng
OnCalendar=na may ibang syntax:Mon..Fri *-*-* 09..17:00/15:00. Pinagsasama ang kondisyon ng weekday at petsa gamit ang AND, hindi OR, kaya may mga cron expression na walang eksaktong katumbas. - Ang Quartz at Spring ay naglalagay ng seconds field sa simula at maaaring magdagdag ng year field. Dapat
?ang isa sa dalawang day field, at binibilang ng Quartz ang mga weekday na 1–7 mula Linggo, taliwas sa 0–6 ng cron. Isinusulat ng tool ang mga weekday bilang pangalan (MON-FRI) para maiwasan ang patibong na iyon. - Ang AWS EventBridge ay gumagamit ng
cron(minutes hours day month weekday year): anim na field, walang seconds, may?sa isang day field at year sa dulo.
Walang seconds field ang karaniwang cron. Ang 6-field na anyo na may seconds ay sinusuportahan ng maraming library (node-cron, Spring, Quartz) pero hindi ng system crontab.
Mga madalas itanong
Paano magpatakbo ng job bawat 5 minuto?
Gamitin ang */5 * * * *. Tumatakbo ang job sa minutong 0, 5, 10… ng bawat oras.
Paano magpatakbo ng job sa huling araw ng buwan?
Tumatanggap ang maraming scheduler ng L sa field ng araw ng buwan: 0 18 L * *. Sa payak na Vixie cron, patakbuhin araw-araw sa mga araw 28–31 at tingnan sa script kung ang bukas ay ika-1.
Ano ang ginagawa ng @reboot?
Pinapatakbo nito ang command nang isang beses, kapag nagsimula ang cron daemon. Wala itong iskedyul, kaya hindi makapaglista ang tool ng mga oras ng takbo para rito.
Bakit hindi tumatakbo ang job ko sa oras na ipinapakita?
Tingnan ang time zone ng server, ang crontab ng user laban sa /etc/crontab (na may dagdag na field ng user), at ang PATH: nagsisimula ang cron sa minimal na environment.
Linggo ba ang 0 o 7?
Pareho. Sa field ng araw ng linggo, ang 0 at 7 ay Linggo, ang 1 ay Lunes at ang 6 ay Sabado.
Mga kaugnay na tool
- Unix Timestamp Converter I-convert ang Unix timestamp sa segundo o millisecond tungo sa nababasang petsa sa lokal na oras, UTC at ISO 8601, at gawing epoch time ang anumang petsa.
- Time Zone Converter I-convert ang petsa at oras mula sa isang time zone papunta sa iba pa nang sabay, awtomatiko ang daylight saving time. Maghanap ng IANA zone o lungsod.
- Chmod Calculator I-convert ang Unix file permissions sa pagitan ng mga checkbox, octal (755) at symbolic (rwxr-xr-x), na may setuid, setgid, sticky bit at handang chmod command.