Cron kila mwezi. Cron-huendesha programu za watumiaji kwa wakati maalum. Inasanidi kwa usahihi kipanga ratiba cha kazi cha Cron

Katika Unix OS, inawezekana kuzindua programu za watumiaji kwa wakati uliowekwa na mtumiaji. Kwa kufanya hivyo, programu ya cron hutumiwa, ambayo hupokea maagizo kutoka kwa watumiaji na, kufuata yao, hufanya kazi yoyote kulingana na maandiko yaliyopokelewa. Wateja wetu wanaweza kutumia kipengele hiki kufanya kazi za mara kwa mara.

Jinsi ya kusanidi cron katika Akaunti yako ya Kibinafsi (kwa ushuru wa unix)

Kwa kuwa sio programu zote za PHP zinaweza kupitia SAPI CLI bila marekebisho ya hapo awali, unaweza kuziendesha wget. Kwa mfano:

/usr/local/bin/wget -O /dev/null -q http://mysite.tld/cron.php?action=123

Ikiwa hati hutumia kazi hitaji, ni pamoja na, na zina njia za jamaa, kisha mwanzoni mwa hati kutekelezwa, tumia simu ya kukokotoa chdir(), ambayo itaweka saraka ya sasa ya kufanya kazi.

Jinsi ya kupokea ujumbe wa makosa kutoka kwa programu zinazoendeshwa na cron

Ikiwa utapata makosa wakati wa kutekeleza programu inayoendesha kutoka kwa cron, labda utataka kupokea ujumbe wa makosa ili uweze kufuatilia kikamilifu utendaji wa kazi zinazoendeshwa mara kwa mara. Ili kufanya hivyo, weka safu ifuatayo mwanzoni mwa hati ya cron:

[email protected]

Hakika, [email protected] unahitaji kuibadilisha na barua pepe ya maisha halisi ambapo arifa zitawasilishwa. Ikiwa unahitaji kupokea ujumbe wa hitilafu kwa anwani kadhaa, taja anwani hizi zote zikitenganishwa na koma.

Tafadhali kumbuka kuwa cron itatuma kwa barua ni nini matokeo ya hati zinazoendesha. Kwa mfano, ukiandika hati inayochapisha mstari "Hujambo, ulimwengu" na kuiendesha kupitia cron, utapokea barua pepe yenye mstari "Hujambo, ulimwengu" kila wakati cron inapoendesha hati kama hiyo.

Ili kuepuka hili, kwa mfano, wakati huhitaji pato la maandishi na script, unahitaji kuongeza wahusika

> /dev/null 2>&1

Mstari kamili wa cron utaonekana kama hii:

0 1 * * * /usr/local/bin/php -q $HOME/script.php > /dev/null 2>&1

Tunapendekeza uangalie sintaksia sahihi ya hati ulizoweka ziendeshe kupitia cron. Hati zinaweza kuwa na hitilafu, huenda zisifanye kazi sawa wakati unaendeshwa kupitia seva ya wavuti na kupitia cron, na kadhalika. Ili kuhakikisha kuwa hati itafanya kazi kwa usahihi kupitia cron, angalia kwanza na amri ifuatayo kwenye ganda la unix:

/usr/local/bin/php -l script.php

Ikiwa hakuna makosa katika hati, utaona ujumbe "Hakuna makosa ya syntax yaliyogunduliwa kwenye script.php".

Vikwazo

Kwa programu zinazozinduliwa kupitia cron, vikwazo sawa na rasilimali zinazotumiwa hutumika kama kwa michakato iliyozinduliwa na mtumiaji kwenye shell ya unix. Tunazungumzia kuhusu vikwazo juu ya muda wa utekelezaji wa programu, kiasi cha kumbukumbu inapatikana, vikwazo juu ya ukubwa wa faili, na kadhalika.

Nyenzo zetu kwenye Seva ya Ubuntu mara kwa mara hugusa suala la kuendesha kazi fulani kwa ratiba. Ili tusieleze jambo lile lile kila wakati, tuliamua kuunda nyenzo hii, ambayo inapaswa kusaidia wasimamizi wa mfumo na kutumia kwa ufanisi mpangilio wa kazi katika Linux.

Katika Seva ya Ubuntu, inatumika kama mpangilio wa kazi cron- mpangilio na kiolesura cha mstari wa amri. Ni sehemu muhimu ya mfumo na huanza kufanya kazi mara baada ya ufungaji, kufanya kazi mbalimbali za mfumo. Lengo letu ni kuiweka katika huduma yetu, hasa kwa vile si vigumu kama inavyoonekana.

Kuna aina mbili za ratiba cron: mtumiaji na mfumo. Wanatofautiana kwa kuwa ya kwanza imeundwa na watumiaji na kutekelezwa kwa kuzingatia haki za mtumiaji, ya pili inatumiwa kwa madhumuni ya utawala au mfumo na inaweza kuzinduliwa kwa niaba ya mtumiaji yeyote.

Ili kuunda au kubadilisha ratiba maalum, ingiza amri:

Crontab -e

Unapoizindua kwa mara ya kwanza, matumizi yatakuhimiza kuchagua kihariri; tunapendekeza uchague mcedit(inahitaji mc kusakinishwa), au kihariri kingine ambacho unajua kufanya kazi nacho.

Muundo wa mistari ya ratiba ni:

dakika saa siku ya mwezi siku_ya_wiki amri

  • Dakika- muda katika dakika kutoka 0 hadi 59
  • Saa- kutoka 0 hadi 23
  • Siku- siku ya mwezi kutoka 1 hadi 31
  • Mwezi- kutoka 1 hadi 12 au majina ya barua Januari - Desemba
  • Siku ya wiki- kutoka 0 hadi 6 (0 - Jumapili) au ameketi - jua
  • Timu- kamba katika muundo wa mkalimani wa amri ambayo itatekelezwa, kuandika kama timu1 && timu2 kutekeleza amri kadhaa mfululizo.

Thamani za dakika, masaa, siku zinaweza kutajwa kama ifuatavyo:

  • Maana- nambari inayoonyesha tarehe au wakati, kadi ya mwitu inaruhusiwa * kuruhusu anuwai kamili ya maadili
  • Thamani nyingi- inaruhusiwa kutaja maadili kadhaa yaliyotengwa na koma, kwa mfano 2,14,22
  • Msururu wa maadili- imeonyeshwa kwa hyphen, kwa mfano 2-10
  • Hatua ya thamani- imeonyeshwa kupitia sehemu, denominator ambayo ni hatua, kwa mfano */3 - kila thamani ya tatu 0, 3, 6, 9, nk. Nambari lazima iwe safu ya thamani au nyota.

Fikiria ingizo la mfano lifuatalo:

0 8-19/2 * * 1 /home/ivanov/test

Ina maana kwamba kila saa ya pili kutoka 8 hadi 19 (8, 10,12,14,16) siku ya Jumatatu, endesha script ya mtihani katika saraka ya nyumba ya Ivanov.

Tungependa kukuonya mara moja dhidi ya kosa la kawaida: wakati wa kuonyesha utekelezaji wa mara kwa mara, tarehe zote lazima zionyeshwe kwa uwazi, nyota inaonyesha upeo kamili wa maadili, na sio kutokuwepo kwao. Kwa mfano, ikiwa unahitaji kutekeleza hati fulani kila saa kutoka 10 hadi 15, itakuwa si sahihi:

* 10-15 * * * /home/ivanov/test

Mstari huu utaendesha hati kila dakika katika safu kutoka masaa 10 hadi 15. Itakuwa sawa:

0 10-15 * * * /home/ivanov/test

Ingizo hili litaruhusu hati kufanya kazi mwanzoni mwa kila saa ya safu maalum.

Mbali na tarehe, unaweza kutumia idadi ya kamba maalum:

  • @washa upya- kutekeleza amri juu ya kuanzisha upya
  • @kila mwaka au @kila mwaka- kutekeleza mnamo Januari 1, sawa na kiingilio: " 0 0 1 1 * "
  • @kila mwezi- fanya tarehe 1 ya kila mwezi, sawa na " 0 0 1 * * "
  • @kila wiki- fanya kila Jumapili, sawa na " 0 0 * * 0 "
  • @kila siku au @usiku wa manane- kila siku usiku wa manane" 0 0 * * * "
  • @saa- mara moja kwa saa," 0 * * * * "

Kwa hivyo kwa utekelezaji wa kila siku wa hati yetu kila usiku wa manane unaweza kuandika:

@midnight /home/ivanov/test

Baada ya kukamilisha kuunda ratiba, hifadhi faili na uondoke kihariri. Ratiba maalum itahifadhiwa ndani /var/spool/cron/crontabs chini ya jina la mtumiaji wa sasa.

Faili hutolewa kwa kazi za mfumo na usimamizi /etc/crontab Syntax ya maingizo ndani yake inatofautishwa na uwepo wa thamani ya ziada - mtumiaji ambaye kazi yake itazinduliwa kwa niaba yake:

saa ya dakika siku ya mwezi siku_ya_wiki amri ya mtumiaji

Mfano wa kiingilio kama hicho:

0 19 * * 1-5 mzizi /etc/backup

Kulingana na ambayo saa 19:00 kutoka Jumatatu hadi Ijumaa script itazinduliwa /etc/backup kwa niaba ya mtumiaji mzizi.

Faili hii pia ina ratiba za mfumo, kwa hivyo kuihariri kunapaswa kufanywa kwa tahadhari. Kazi zote za mfumo na utawala zinapaswa kuwekwa hapo.

Kama tunavyoona cron Ni rahisi kutumia, lakini wakati huo huo hutoa fursa nyingi za kusanidi ratiba katika Ubuntu Server. Tunatumahi kuwa nakala hii itasaidia wasimamizi kusimamia zana hii.

Wasimamizi wa mfumo, na watumiaji wa kawaida, mara nyingi wanahitaji kurekebisha kazi mbalimbali za matengenezo na kazi na Linux kwa kutumia hati. Ni rahisi sana, unaendesha hati tu na hufanya kila kitu kinachohitaji bila uingiliaji wako. Hatua inayofuata katika safari hii ni kusanidi hati sahihi ili kuendeshwa kiotomatiki kwa wakati unaofaa.

Ni kwa kazi hizi ambazo Linux hutumia huduma ya mfumo wa cron. Hiki ni kipanga ratiba kinachokuruhusu kutekeleza hati unazohitaji mara moja kwa saa, mara moja kwa siku, wiki au mwezi, na vile vile wakati wowote unaobainisha au kwa muda wowote. Mpango huo hutumiwa mara nyingi hata na huduma nyingine za mfumo wa uendeshaji. Katika makala hii tutaangalia jinsi Cron imeundwa na kuangalia mifano kuu inayotumiwa mara kwa mara.

Kwa kweli, Cron ni huduma, kama huduma zingine nyingi za Linux, huanza wakati wa kuanzisha mfumo na huendesha chinichini. Kazi yake kuu ni kutekeleza michakato sahihi kwa wakati unaofaa. Kuna faili kadhaa za usanidi ambazo huchukua habari kuhusu kile kinachohitajika kufanywa na wakati gani. Huduma inafungua /etc/crontab faili, ambayo ina data zote muhimu. Mara nyingi, katika usambazaji wa kisasa imeagizwa kuzindua matumizi ya sehemu za kukimbia, ambayo huzindua maandiko muhimu kutoka kwa folda zifuatazo:

  • /etc/cron.minutely- kila dakika;
  • /etc/cron.hourly- kila saa;
  • /etc/cron.daily- kila siku;
  • /etc/cron.weekly- kila wiki;
  • /etc/cron.monthly- kila mwezi.

Folda hizi zinapaswa kuwa na hati ambazo zinahitaji kutekelezwa kwa muda uliowekwa. Hati lazima ziwe na haki za utekelezaji na jina lao lazima lisiwe na nukta. Hii hurahisisha kufanya kazi na kipanga ratiba kwa watumiaji wapya. Pia katika faili ya crontab ni uzinduzi wa amri ya anacron, ambayo inafanya kazi sawa na cron, tu ni lengo la kazi zinazohitajika kufanywa mara moja kwa muda mrefu, kwa mfano, mara moja kwa siku, wiki, mwezi, mwaka.

Inakuruhusu kuzifanya hata ikiwa kompyuta haifanyi kazi kila wakati na huzima mara kwa mara. Tarehe ambayo kazi ilitekelezwa mara ya mwisho imerekodiwa kwenye /var/spool/anacron faili, na kisha, wakati mwingine inapoanzishwa, anacron hukagua ili kuona ikiwa mchakato unaohitajika ulikuwa ukifanya kazi kwa wakati unaofaa, na ikiwa sivyo, huanza. ni. Huduma ya cron yenyewe imeundwa zaidi kufanya kazi wakati wa mchana au kwa wakati na tarehe iliyopangwa kwa usahihi.

Inasanidi Cron

Ili kusanidi wakati, tarehe na muda wakati kazi inahitaji kutekelezwa, syntax maalum ya faili ya cron na amri maalum hutumiwa. Kwa kweli, unaweza kuhariri /etc/crontab faili kila wakati, lakini hii haifai. Badala yake, kuna crontab amri:

Inashauriwa kuifanya kwa -e chaguo, kisha kihariri chako cha maandishi chaguo-msingi kitatumika kuhariri sheria. Amri inakufungua faili ya muda, ambayo tayari ina sheria zote za sasa za cron na unaweza kuongeza mpya. Baada ya amri ya cron kukamilika, faili itachakatwa na sheria zote zitaongezwa kwa /var/spool/cron/crontabs/username, na michakato iliyoongezwa itazinduliwa haswa kutoka kwa mtumiaji ambaye umeziongeza.

Kwa hivyo, unahitaji kuwa mwangalifu hapa, na ikiwa unahitaji kutekeleza hati kama mzizi, basi crontab lazima itekelezwe kama mzizi, na sio kama mtumiaji. Hii mara nyingi husababisha matatizo.

syntax ya crontab

Kama nilivyosema tayari, wakati umewekwa katika syntax maalum, wacha tuangalie syntax ya kusanidi kazi moja ya cron:

Saa ya dakika siku ya mwezi siku_wiki /path/to/executable/file

Inapaswa kusemwa kwamba lazima uandike njia kamili ya amri, kwa sababu kwa amri zinazoendeshwa kama cron, utofauti wa mazingira wa PATH utakuwa tofauti, na huduma haitaweza kupata amri yako. Hii ni sababu ya pili ya kawaida ya matatizo na Cron. Tarehe na wakati huonyeshwa kwa kutumia nambari au ishara "*". Ishara hii ina maana kwamba inahitaji kutekelezwa kila wakati, ikiwa katika uwanja wa kwanza - basi kila dakika na kadhalika. Naam, sasa hebu tuendelee kwenye mifano.

Mifano ya mipangilio ya cron

Kwanza, unaweza kuona kazi za cron kwa mtumiaji mkuu, kwa hili unaweza kutumia -l chaguo:

Unaweza kufuta kazi zote zilizopo na -r amri:

Wacha tufikirie kuwa tunahitaji kuendesha hati yetu kwa /usr/local/bin/serve kama mtumiaji mkuu. Aina fulani ya hati ya matengenezo. Mfano rahisi zaidi ni kuiendesha kila dakika:

* * * * * /usr/local/bin/serve

0 * * * * /usr/local/bin/serve

Tunazindua kwa dakika sifuri ya saa sifuri, kila siku, hii ni saa 12 usiku:

0 0 * * * /usr/local/bin/serve

0 0 1 * * /usr/local/bin/serve

Unaweza kuifanya siku yoyote, kwa mfano, tarehe 15:

0 0 15 * * /usr/local/bin/serve

Katika siku ya kwanza ya juma la mwezi wa kwanza wa mwaka, saa 0 dakika 0:

0 0 * 1 0 /usr/local/bin/serve

Au siku ya sifuri ya wiki ya kila mwezi:

0 0 * * 0 /usr/local/bin/serve

Unaweza kuchagua dakika yoyote, saa na siku ya wiki, kwa mfano 15.30 Jumanne:

30 15 * * 2 /usr/local/bin/serve

Jumatatu inachukuliwa kuwa siku ya kwanza, Jumapili ni siku ya saba au sifuri. Unaweza pia kuandika jina fupi la siku ya juma, kwa mfano jua - Jumapili:

30 15 * * jua /usr/local/bin/serve

Ili kuonyesha muda maalum, unahitaji kutumia ishara "-", kwa mfano, kila saa, kutoka saba asubuhi hadi saba jioni:

0 7-19 * * * /usr/local/bin/serve

Ikiwa unahitaji kutekeleza amri mara nyingi, unaweza kutumia kitenganishi cha ",". Kwa mfano, hebu tuendeshe hati saa 5 na 35 dakika tano na nusu (16:05 na 16:35), kila siku:

5.35 16 * * * /usr/local/bin/serve

Huenda usitake kutaja wakati kando, lakini taja tu muda ambao ungependa hati ifanye kazi, kama vile mara moja kila baada ya dakika 10. Ili kufanya hivyo, tumia kikomo cha kufyeka - "/":

*/10 * * * * /usr/local/bin/serve

Kwa kuongezea, anuwai zimevumbuliwa kwa seti kadhaa zinazotumiwa kawaida, hizi ni:

  • @washa upya- wakati wa kupakia, mara moja tu;
  • @kila mwaka, @kila mwaka- mara moja kwa mwaka;
  • @kila mwezi- mara moja kwa mwezi;
  • @kila wiki- mara moja kwa wiki;
  • @kila siku, @saa sita usiku- kila siku;
  • @saa- kila saa.

Kwa mfano, hivi ndivyo amri ya kuendesha hati mara moja kwa saa ingeonekana rahisi:

@hourly /usr/local/bin/serve

Ikiwa utaongeza hati kwenye moja ya folda, basi, kama nilivyosema tayari, unahitaji jina lake kuwa bila dots na ina haki za utekelezaji:

sudo vi /etc/corn.daily/backup

Nakala inapaswa kuonekana kama hii. Sasa unajua jinsi ya kusanidi cron, kilichobaki ni kuangalia jinsi kila kitu kinavyofanya kazi.

Kazi ya kurekebisha

Baada ya kuweka sheria, ungependa pia kuangalia ikiwa zinafanya kazi. Ili kufanya hivyo, tunasubiri wakati ambapo script inapaswa tayari kutekelezwa na kuangalia logi ya cron. Wakati mwingine iko /var/log/cron, na wakati mwingine imeandikwa kwa syslog. Kwa mfano, nina mstari huu kwenye crontab yangu:

Inapaswa kutekelezwa saa 19.40 kila siku, sasa angalia logi:

grep CRON /var/log/syslog

Na tunaona kwamba katika logi yetu iko kweli na inatekelezwa kwa mafanikio kabisa. Ikiwa kulikuwa na makosa yoyote, ujumbe ungeonyeshwa mara moja.

Ikiwa unahitaji kuangalia hati ambayo iko kwenye moja ya folda maalum, basi ni rahisi zaidi, endesha tu njia, kupitisha folda inayotaka au hata hati yenyewe kama parameta:

sudo run-paths /etc/cron.daily/

hitimisho

Katika nakala hii, tuliangalia jinsi cron imeundwa kwa upangaji rahisi wa kazi za kiotomatiki. Natumai habari hii ilikuwa muhimu kwako.

Nimesikia mengi juu ya jinsi Linux ina kipanga kazi cha cron. Hata hivyo, sikuwa na haja ya kuitumia, na sikutaka kuelewa mipangilio yake ... console, barua nyingi za Kiingereza ... ilikuwa inatisha. Lakini, kwa bahati nzuri, hofu yangu ilikuwa bure - kila kitu ni rahisi kwa misingi. Nakala hiyo itaangalia jinsi ya kusanidi utekelezaji wa hati zako kwa ratiba, na kwa mfano tutaweka "cuckoo".

Kwanza, kidogo juu ya jinsi inavyofanya kazi kwa ujumla.

Wakati mfumo unapoanza, cron daemon huanza. Inaweza kudhibitiwa (simama / anza / angalia hali) na amri: huduma ya sudo cron (acha / anza / hadhi). Lakini hii ni mara chache muhimu.

Cron daemon yenyewe hulala mara nyingi, na hufungua jicho lake kidogo mara moja kwa dakika ili kuangalia kazi kwa wakati huu. Ikiwa hakuna kazi, basi anaingia kwenye hibernation tena.

Kazi ziko katika faili zilizo na majina sawa na majina ya watumiaji, na faili zenyewe ziko kwenye folda ya /var/spool/cron/crontabs. Folda inalindwa kutokana na kuingiliwa kwa nje na inapatikana tu kwa mtumiaji mkuu. Lakini, kila mtumiaji anaweza kuweka ratiba ya kazi zao bila kujua mzizi (superuser) nenosiri.

Kwa anzisha cron Kwa mtumiaji wa kawaida, chapa tu:

Ikiwa unahitaji kuunda kazi kwa mtumiaji mwingine, basi uzindue kwa amri:

sudo crontab -u mtumiaji -e

Badala ya mtumiaji, andika mtumiaji anayetaka, kwa mfano mzizi.
Unapozindua kwanza kutakuwa na swali kuhusu mhariri ... napenda nano. Ni rahisi na inaendesha bila GUI.


Syntax ya kazi ni rahisi sana. Wacha tuangalie mfano kutoka kwa skrini ya kuzindua cuckoo:

0 */1 * * * /home/zegi/bin/kuku

Kuna nyanja 2 kuu katika kazi: 0 */1 * * * - inaonyesha wakati ambapo amri itaanzishwa. Na /home/zegi/bin/kuku ndio njia ya hati inayoelezea amri.

Haipaswi kuwa na matatizo yoyote na anwani kwa script (zegi ni jina la mtumiaji ... usisahau kuweka yako). Lakini tunahitaji kuelezea jinsi ya kuweka wakati wa cron kwa utekelezaji wa hati.

Kwa jumla tuna seli 5 za ingizo, ambazo zimetenganishwa na nafasi.
Dakika 1 (idadi kutoka 0 hadi 59)
Saa 2 (kutoka 0 hadi 23)
3 - siku ya mwezi (kutoka 1 hadi 31)
4 - mwezi wa mwaka (kutoka 1 hadi 12 ... kwa mfano Februari ni 2)
5 - siku ya juma (kutoka 1 hadi 7. Wiki ya Magharibi hutumiwa, wakati mwanzo ni Jumapili. yaani Sun-1, Mon-2, Tue-3, Wed-4, Thu-5, Fri-6, Sat - 7).

Kila seli lazima ijazwe. Ikiwa unahitaji amri ya kutekelezwa kila mwezi, kisha uweke * katika uwanja wa 4. Vile vile hutumika kwa nyanja zingine.

Hebu turudi kwenye mfano wa cuckoo, wakati script inaendesha kila saa. Ili kuweka mzunguko unaotumiwa / . Kwa mfano, ikiwa unahitaji kazi hiyo kutekelezwa kila dakika 5, Jumatatu, kisha weka:

Ikiwa unahitaji kazi kutekelezwa kila saa, basi utalazimika kuweka dakika maalum. Ukiacha asterisk (* */1 * * *), basi taji itafanya kila dakika - kwa sababu masharti yanafikiwa: iliangalia seli zote 5 na thamani yao inalingana na wakati wa sasa (dakika - haijalishi. Masaa - kila saa, na sio tu fulani).
Kufyeka lazima kutanguliwa na nyota kila wakati. Kwa mfano, kukabidhi utekelezaji kila dakika kuanzia tarehe 30 kwa kuingiza 30/1 haitafanya kazi.

Ikiwa inahitajika kwa kazi hiyo kufanywa sio kwa mzunguko, lakini mara kadhaa, basi maadili yameandikwa kutengwa na koma.
Kwa mfano, unahitaji kukamilisha kazi siku za wiki saa 12 jioni na 6 jioni. Kisha itaonekana kama hii:

* 12,18 * * 2,3,4,5,6

Unapomaliza kazi za kuhariri, usisahau kuhifadhi mabadiliko (Ctrl+O> ingiza), na kisha unaweza kuondoka (Ctrl+x).

Cron inapaswa kuarifu kwamba kazi mpya imeonekana na iko tayari kuitekeleza kwa kuandika: "crontab: installing new crontab".

Unaweza kutazama kazi zilizoundwa (labda haukujifanyia chochote, lakini msimamizi wa mtandao alikuwekea kitu) kwa amri:

Na mwishowe mwenyewe maandishi ya cuckoo, ambayo hukumba kila saa:

#!/bin/bash
h=`tarehe +%l`
wakati [ $h -gt 0]
fanya
play ~/kukushka.wav
h=$[$h-1]
kufanyika

Unaweza kupakua sauti ya cuckoo kwa amri:

wget http://dl.dropbox.com/u/24844052/tuksik/kukushka.wav

Kucheza ni pamoja na katika mfuko sox. Katika ubuntu unaweza kuisanikisha kwa amri.

Utaratibu muhimu ambao hutoa udhibiti juu ya utekelezaji wa michakato katika linux ni mpanga ratiba au cron, faili crontab katika saraka nk, kwa kutumia faili hii, hati na kazi zinaongezwa ambazo tunaweza kuandika kwa mfumo unaoendesha, kwa mfano, kudhibiti uendeshaji. linux mifumo kwa barua pepe

Cron- huduma ya daemon inatumika ndani linux/unix mifumo kama mratibu wa kazi. Daemon hukuruhusu kuzindua mara kwa mara hati za utekelezaji.

Faili zilizoundwa zimewekwa ama kwenye saraka:
/usr/spool/cron/crontabs au /var/spool/cron/tabs
Unahitaji tu kuzihariri kwa kuendesha crontab -e
Kulingana na muda wa utekelezaji, faili zinaweza kuwekwa katika saraka zifuatazo:
/etc/cron.daily
/etc/cron.weekly
/etc/cron.monthly

Kuunda kazi za cron
Unda kazi ndani crontab inaonekana kama kujaza sehemu sita zinazohitajika, maana yake ni kama ifuatavyo.
1. Dakika - nambari kutoka 0-59
2. Masaa - nambari kutoka 0-23
3. Siku ya mwezi - nambari kutoka 1-31
4. Idadi ya mwezi katika mwaka - nambari kutoka 1-12
5. Siku ya wiki - nambari kutoka 0-7
0-Jumapili, 1-Jumatatu, 2-Jumanne, 3-Jumatano, 4-Alhamisi, 5-Ijumaa, 6-Jumamosi
Kwa kila moja ya vigezo hapo juu, maadili yafuatayo yanaweza kuwekwa:
a) Imetenganishwa na koma - 3,7,9 (katika siku ya mwezi uwanja 3,7,9 mtawalia)
b) Hyphenated - 3-9 (katika uwanja wa saa itamaanisha utekelezaji saa 3,4,5,6,7,8,9)
c) * - itatekelezwa kwa maadili yote yanayowezekana
d) / - kuweka vipindi vya ziada vya kazi - */8 kwenye uwanja wa dakika, itatekelezwa kila dakika ya nane

Jinsi ya kuendesha kazi cron wakati mfumo wa buti. Kuendesha hati mfumo unapoanza Linux Neno kuu la kuwasha upya linatumika. Kwa mfano:

Kwa kuongeza, unaweza kutumia maneno muhimu yafuatayo:
@mwaka - sawa na 0 0 1 1 * (mara moja kwa mwaka)
@daily - sawa na 0 0 * * * (mara moja kwa siku)
@hourly - sawa na 0 * * * * (mara moja kwa saa)

Amri za kusimamia crontab
- Tazama kazi za akaunti ya sasa
crontab -l
- tazama kazi za akaunti inayotaka
crontab -u jina la mtumiaji -l
- Kuhariri kazi za cron
crontab -e
- Kuhariri kazi za cron kwa mtumiaji fulani
crontab -u jina la mtumiaji -e

Mifano ya kazi za cron:
Kamilisha kazi saa 7 asubuhi kila siku
0 7 * * * mzizi /home/scripts/mount.sh
Kamilisha kazi saa 17:30 kila siku
30 17 * * * mzizi /home/scripts/mount.sh
Kamilisha kazi kila mwezi siku ya kwanza kwa saa 0 dakika 0
0 0 1 * * mzizi /home/scripts/mount.sh
Fanya kazi kila baada ya masaa 4
* * /4 * * * mzizi /home/scripts/mount.sh
Endesha kazi kwenye buti Linux
@reboot root /home/scripts/mount.sh

Usanidi wa ziada wa cron
Ili kupokea ripoti ya kazi cron unaweza kufafanua tofauti ya MAIL mwanzoni cron hati
MAIL=mail.mail.local
Kwa chaguo-msingi, barua itakuwa na matokeo ya ujumbe wote na hati; ili kuzuia hili kutokea, unahitaji kuongeza > /dev/null 2>&1 kwenye kazi ya cron ya hati.
Ili kuzima kupokea ujumbe kutoka kwa cron unahitaji kuacha kigezo cha MAIL bila kuwekwa
BARUA=””
Inawezekana kuamua njia ya faili na hati kwa kutumia PATH variable, kwa mfano
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/home/scripts, kwenye crontab itakuruhusu kuandika kwenye mstari wa vigezo vya kazi.
@reboot mzizi mount.sh
Kuendesha maandishi kupitia cron kwa kutumia mkalimani wa php
* 1 * * * /usr/local/bin/php - q mount.sh > /dev/null 2>&1
/usr/local/bin/wget –O /dev/null –q http://"site.com/cron.php?action=123"