Menene bayyanar cron?
Bayyanar cron kirtanin tsara taƙaitawa ne wanda ke gaya wa mai tsara aikin daidai lokacin da zai kunna aiki. An haifi tsarin a 1975 a cikin daemon na Unix V7 cron kuma ba ta canza kaɗan tun haka — nahawun fagen biyar iri ɗaya yana bayyana yau a cikin Kubernetes CronJobs, AWS EventBridge, ayyukan GitHub Actions, Google Cloud Scheduler, GitLab CI, tsarin Jenkins, da binary na crontab da har yanzu aka tura tare da kowane rarraba na Linux. Nahawun yana sanya ma'ana mai yawa a cikin haruffa goma sha uku ko haka, shi ya sa mai fassara wanda ke canza shi zuwa Ingilishi mai sauƙi shi ne bambancin tsakanin tura da kwarin gwiwa da mayarwa da karfe 3 na dare.
Yaya bayyanar cron ke aiki?
Bayyanar cron ma'aunin yana da fagen biyar da aka raba da sarari waɗanda tare ke ayyana jadawalin maimaitawa. Injin yana duba agogon bangon yanzu akan bayyanar kowane minti kuma yana kunna aiki lokacin da duk fanuka biyar suka daidaita. Fagen, hagu zuwa dama:
- Minti (0–59). Wane minti a cikin sa'a aikin ke gudana.
0na nufin a sa'a,30na nufin a rabin sa'a,*/5na nufin kowane mintoci biyar (00, 05, 10, ...), da15,45na nufin a kwata bayan da kwata zuwa. - Sa'a (0–23). Wane sa'a na rana a kan agogon awanni 24.
0tsakar dare ne,9karfe 9 AM ne,17karfe 5 PM ne. Kewayon (9-17don awannin kasuwanci) da ƙimomi matakin (*/2don kowace sa'a biyu) suna aiki iri ɗaya kamar mintoci. - Rana ta wata (1–31). Wane rana na kalandar don gudana.
1na nufin na 1 na wata,*na nufin kowace rana,1,15na nufin na 1 da na 15. Yi hankali da31— yana tsallake awanni waɗanda ba su da ranar 31. - Wata (1–12 ko JAN–DEC). Waɗanne watan don gudana.
*na nufin kowane wata,1,7na nufin Janairu da Yuli,1-3na nufin Q1 kawai. Sunayen wata na haruffa uku masu haɗa-haɗa ba su da hankali a cikin yawancin aiwatarwa. - Rana ta mako (0–7, inda 0 da 7 duka suna nufin Lahadi). Yana iyakance kunna zuwa kwanakin mako masu keɓancewa.
1-5Litinin zuwa Jumma'a ne,0,6mako ƙarshe ne,MON-FRIyana aiki a yawancin masu fassara. Lokacin da rana-ta-wata da rana-ta-mako aka sanya zuwa ƙimomi na musamman, cron na gargajiya yana kunna a ko wane daidatuwa (OR na ma'ana), wanda ke mamaki kowane lokaci.
Me ya sa amfani da mai fassara bayyanar cron?
- Kama karancin misreading kafin tura. Bayyanar `0 2 */3 * *` yana kunna da karfe 2 AM kowane rana na uku, ba kowane mintoci uku ba — liƙa shi a nan kuma za ka ga hakan a Ingilishi mai sauƙi kafin ya isa samarwa.
- Yawancin masu tsara girgije suna gudana a UTC tsohuwa. Duba lokutan aiki goma masu zuwa a cikin yankinki na cikin gida yana fallasa bambancin sa'a ɗaya na DST kafin ya kira wani da karfe 3 na dare.
- Gajertawa kamar `@daily`, `@weekly`, da `@monthly` suna da amfani amma ba su da tabbaci. Mai fassara yana nuna maka sifar fagen biyar da ke ƙarƙashinsa don ka san daidai abin da aka tsara.
- Mai gina fagen-fagen yana ba ka damar haɗa jadawali ginshiƙi ɗaya a lokaci kuma kallo yadda bayyanin mutum yana sabuntawa kai tsaye, wanda ya fi sauri fiye da sake karanta shafin man cron a karo na goma.
Ina ake amfani da bayyanar cron?
Tsarin cron yana bayyana ko'ina aikin yana buƙatar maimaitawa a agogo. Ɗaya daga cikin ma'anoni na gama-gari uku, tare da daidai abin da kowanensu ya shahara da shi:
- Jadawalin ajiya. Bayanan gargajiya `crontab -e` wanda ke jefa bayanan bayanai zuwa S3 da karfe 2 AM dare-dare, ko yana jujjuya ajiyar `pg_dump` a kan na 1 na kowane wata. Layi kamar `0 2 * * * /usr/local/bin/backup.sh` ya tura a kan uwar garken Linux fiye da kowane layi na cron a tarihi. Ka samu minti da sa'a daidai, sake-jagoranci stderr a wani wuri mai ɗorewa, kuma ka maye jerin duba na hannu da rubutun kunna-ka-daina.
- Kunna GitHub Actions `schedule`. Maɓalli `on.schedule.cron` a cikin `.github/workflows/*.yml` yana karɓan cron na fagen biyar ma'auni, amma aiki koyaushe yana gudana a UTC kuma GitHub zai tsallake lokacin kunna a shiru idan jerin mai gudana yana cike. Tsarin gama-gari: `cron: '0 9 * * 1-5'` don tura taƙaitawa Litinin-zuwa-Jumma'a da karfe 9 AM UTC. Duba shi a nan a yankinki na cikin gida kafin don kada ka alƙawari taƙaitawa da karfe 9 AM ta London da ainihin ke zo da karfe 10 AM a BST.
- AWS EventBridge Scheduler. Bayyanar cron na EventBridge yana ɗaukar fage na shida don shekara kuma yana buƙatar `?` maimakon `*` a ko wane ɗaya daga cikin fagen rana-ta-wata ko rana-ta-mako — `cron(0 9 ? * MON-FRI *)` fassara na EventBridge ce ta cron ma'aunin kwanaki aiki 9 AM na gargajiya. Yana amfani don kunna Lambda da aka tsara, gudanar da ayyukan ECS, da farawa na injin-jiha na Step Function; rashin daidaituwa da tsarin cron na gargajiya shi ne tushen lamba ɗaya na kurakuran `ValidationException` a cikin turawa na CloudFormation.
Yaya bayyanar cron ta gaske ke kama?
Ka ɗauki 0 9 * * 1-5 — yana kunna da karfe 9:00 AM, kowace rana aiki. Karanta fagen hagu zuwa dama: 0 shine minti na sifili na sa'a, 9 karfe 9 AM ne a kan agogon awanni 24, * a rana-ta-wata na nufin kowace rana ta kalandar, * a wata na nufin kowane wata, da 1-5 a rana-ta-mako yana iyakance kunna zuwa Litinin zuwa Jumma'a (inda 1 = Litinin a cikin lambobin cron ma'auni). Liƙa hakan cikin shigarwa a sama kuma mai fassara yana tabbatar Da karfe 09:00 AM, Litinin zuwa Jumma'a tare da kwanakin aiki goma masu zuwa da aka nuna a cikin ko wane yankin IANA da ka zaɓa. Niyya iri ɗaya a cikin tsarin AWS EventBridge shine cron(0 9 ? * MON-FRI *) — lura da fagen shekara a ƙarshen da ? inda cron ma'auni zai yi amfani da *. Niyya iri ɗaya a matsayin bayyanar Quartz (fage shida tare da seconds na gaba) shine 0 0 9 ? * MON-FRI. Dandali uku daban-daban, sifofin saman uku daban-daban, jadawali ɗaya na ƙarƙashinsa.
Bayyanar cron ba ta yarda a hanya ɗaya daidai: kuskuren rubutu yana ba ka jadawalin da ke inganci ta harshe wanda ke kunna a lokaci mara daidai, ba tare da kuskure don kama a cikin nazarin lambar ba. Karanta `0 0 1 * *` da sanin yana gudana da tsakar dare a na 1 na kowane wata, ba a Janairu 1 ba, yana buƙatar aiki. Mai fassara a sama yana canza wannan aiki zuwa duba kwanciyar hankali na dakika goma — liƙa bayyanar, karanta Hausa, bincika lokutan aiki goma masu zuwa a yankinki na cikin gida, ka tura YAML da sanin layin cron ainihin yana yin abin da saƙon aikin ya ce yana yi.
Menene bambanci tsakanin cron na fage biyar da shida?
Cron na fage biyar shine nahawun Unix na gargajiya mai ƙuduri minti ɗaya. Cron na fage shida yana ƙara ginshiƙin dakiƙa na gaba don tsara ƙarami-minti — Quartz da Spring's @Scheduled ke amfani da shi. AWS EventBridge kuma yana amfani da fage shida, amma ginshiƙinsa na ƙari shekara ne mai ɗagawa, ba dakiƙa ba.
Menene @hourly, @daily, da @weekly ke nufi?
Sunayen laƙabi na Vixie-cron da aka gabatar a 1987. @hourly = 0 * * * *, @daily = 0 0 * * *, @weekly = 0 0 * * 0, @monthly = 0 0 1 * *, @yearly = 0 0 1 1 *. @reboot yana kunna sau ɗaya a lokacin farawa. GitHub Actions da EventBridge suna ƙin waɗannan sunayen laƙabi.
Shin Lahadi rana 0 ce ko rana 7 a cron?
Duka biyun, a cikin cron na gargajiya na Vixie — ana karɓan 0 da 7 don kewayon kamar 5-7 su karanta a fili a matsayin Jumma'a-zuwa-Lahadi. Litinin koyaushe 1, Asabar koyaushe 6. Quartz da AWS EventBridge suna amfani da al'ada daban: 1-7 tare da Lahadi a matsayin 1. Duba takardun dandali kafin ɗauka.
Yaya cron ke sarrafa lokacin adana hasken rana?
Ya dogara akan yankin lokacin injin. A UTC (tsohuwa a EventBridge, Kubernetes, da GitHub Actions) DST ba ta wanzu. A yankin DST na cikin gida, cron na gargajiya na Vixie yana tsallake ayyuka yayin giɓin bazara-gaba da kuma gudanar da su sau biyu yayin koma-rani; agogon systemd suna kunna daidai sau ɗaya.