Cron Expression Explainer

[ ANO ANG IBIG SABIHIN ]
Tuwing 15 minuto, araw-araw.
minutooraspetsabuwanaraw ng linggo
[ SUSUNOD NA LIMANG TAKBO ]
Huwebes2026-01-01 00:15
Huwebes2026-01-01 00:30
Huwebes2026-01-01 00:45
Huwebes2026-01-01 01:00
Huwebes2026-01-01 01:15

Oras ito sa orasan sa dingding. Tumatakbo ang cron kapag ganito na ang basa ng orasan ng server, anuman ang offset sa araw na iyon — hindi na sumusunod sa daylight saving ang Pilipinas mula 1978, kaya hindi ito gumagalaw dito.

[ PATLANG SA PATLANG ]
minuto*/15 0, 15, 30, 45
oras* kahit ano
petsa* kahit ano
buwan* kahit ano
araw ng linggo* kahit ano
[ ANO ITO ]

Limang patlang ang cron: minuto oras petsa buwan araw-ng-linggo. Madali iyon. Ang mahirap ay kung paano pinagsasama ang dalawang patlang ng araw.

Kapag parehong may hangganan ang petsa at ang araw-ng-linggo, tumatakbo ang cron kapag ALINMAN sa dalawa ang tumugma — hindi kapag pareho. Kaya ang 0 0 13 * 5 ay hindi Biyernes ng ika-13. Ito ay hatinggabi tuwing ika-13 ng buwan at hatinggabi tuwing Biyernes: mga animnapung takbo kada taon, hindi isa o dalawa.

Wala itong babala sa crontab. Tahimik lang tumatakbo nang animnapung beses ang trabahong akala mo ay taunan.

Ang isa pang bitag ay ang petsang hindi umiiral. Ang 0 0 31 * * ay pitong beses lang tumatakbo kada taon — nilalaktawan ng cron ang buwang mas maikli, hindi inililipat sa ika-30. Para sa huling araw ng buwan, gawing araw-araw at suriin ang petsa sa loob ng trabaho.

[ MGA TANONG ]

Ang “0 0 13 * 5” ba ay Biyernes ng ika-13?

Hindi, at ito ang pinakamaling nababasang panuntunan sa cron. Kapag PAREHONG may takda ang patlang ng petsa at ng araw-ng-linggo, tumatakbo ang POSIX cron kapag ALINMAN ang tumugma — hindi kapag pareho. Ang ekspresyong iyon ay tumatakbo tuwing hatinggabi ng ika-13 ng bawat buwan AT tuwing hatinggabi ng Biyernes: mga animnapung takbo kada taon sa halip na isa o dalawa. Para kailanganin ang dalawang kondisyon, isang patlang lang ang itakda at suriin ang isa sa loob mismo ng trabaho.

Anim na patlang ang ekspresyon ko at tinatanggihan ito. Bakit?

Dahil ang anim na patlang ay Quartz o Spring, at SEGUNDO ang inuuna nila. Lima ang kinukuha ng Unix crontab, simula sa minuto. Hindi sila mapagpapalit: ang “0 0 12 * * ?” ay tanghali sa Quartz at walang kuwenta sa crontab. Ang pagbagsak sa unang patlang para magkasya ay gagawa ng kapani-paniwala at maling iskedyul, kaya tinatanggihan ito kasama ang dahilan.

Ano ang mangyayari sa ika-31 sa buwang tatlumpung araw lang?

Wala — nilalaktawan ito ng cron sa halip na ilipat ang takbo sa ika-30 o ika-1. Ang “0 0 31 * *” ay tumatakbo ng pitong beses kada taon, at ang “0 0 30 * *” ay hindi kailanman tumatakbo sa Pebrero. Kung gusto mo ang huling araw ng buwan, gawin itong araw-araw at suriin ang petsa sa loob ng trabaho.

Ang Linggo ba ay 0 o 7?

Pareho, sa bawat tunay na cron. Ang araw-ng-linggo ay 0 hanggang 7 na may Linggo sa magkabilang dulo, at iyon ang dahilan kung bakit iisang iskedyul ang “* * * * 0” at ang “* * * * 7”. Tinatanggap nito ang alinman at inililipat ang 7 sa 0.

Nasa timezone ko ba ang mga oras ng pagtakbo?

Oras ito sa orasan sa dingding, at ganoon nga gumagana ang cron: ang “0 3 * * *” ay nangangahulugang “kapag 03:00 na ang basa ng orasan ng server”, anuman ang UTC offset sa araw na iyon. Kaya tama ang listahan para sa alinmang zone ng server mo. Sa server na sumusunod sa daylight saving, ang oras na nasa loob ng nilaktawang oras ay hindi kailanman tumatakbo at ang nasa loob ng inulit na oras ay puwedeng tumakbo nang dalawang beses — hindi iyon lumilitaw sa Pilipinas, na hindi na sumusunod sa DST mula 1978.

Bakit nito tinatanggihan ang L, W at #?

Mga ekstensiyon iyon ng Quartz: ang L ay “huli”, ang W ay “pinakamalapit na karaniwang araw”, at ang # ay “ang ikailan sa buwan”. Walang Unix crontab na nakakaunawa sa kanila. Ang pagbasa sa “5L” bilang payak na 5 ay magbibigay sa iyo ng listahan ng takbong tiwalang-tiwala at mali, kaya pinapangalanan at tinatanggihan ito.

[ ANG KOMPUTASYON ]
Paano pinagsasama ang dalawang patlang ng araw
Petsa = *, araw = *araw-araw
Petsa lang ang may takdapetsa lang
Araw lang ang may takdaaraw lang
Pareho may takdapetsa O araw
Huling hilera lang ang nakakagulat — at doon nagkakamali ang halos lahat. Para kailanganin ang pareho, isa lang ang itakda sa cron at suriin ang isa sa loob ng trabaho.
[ SUSUNOD ]
68Unix Timestamp ConverterFor the timestamps in the logs
78Calculator ng Araw ng TrabahoBusiness days, holidays excluded
21Calculator ng PetsaAdd or subtract from a date
[ MAHALAGA ]

Runs entirely in your browser; nothing is transmitted. Standard five-field Unix cron only — Quartz syntax (six fields, L, W, #) is named and refused rather than guessed at. Run times are wall-clock times, which is how cron itself works. Walang ipinapadala sa mga server namin ang tina-type mo rito — sa browser mo tumatakbo nang buo ang pagkuwenta.