Webguneek programatutako Zereginak Exekutatu ditzakete Cron-ekin

erlojua

Prozesuak aldizka exekutatzen dituzten monitore sistema erredundanteak ditugu lanean. Batzuk minuturo korrika egiten dute, beste batzuk gauean behin egiten ari direnaren arabera. Adibidez, 30 egunetan erosketa egin ez duten bezero guztiak esportatzen dituen script bat exekutatu dezakegu kupoia bidaltzeko.

Horien guztien jarraipena eskuz egiten saiatu beharrean, askoz ere errazagoa da automatikoki programatu eta exekutatzen diren lanak eraikitzea. Unix-en oinarritutako sistemetan, hau Cron-ekin lortzen da. Zertan zabiltzan dakizun jendearentzat, lasai irakatsi ni eta irakurleek desinformaziorik botatzen badut.

Penagarria da, baina web garatzaile tipikoak ez du Cron ezagutzen. Nahiz eta hala izan, web hosting-en konpainiek askotan ez dute Cronen sarbidea edo laguntza eskaintzen. Nire ostalaria azken hauetako bat da: erabiltzeko aukera ematen dizute, baina ez dute onartzen.

Zer da Cron?

Cron grezierazko Chronos hitzari ematen zaio izena denbora. Cron etengabeko begizta batean exekutatzen da Crontab-ek pilatutako zereginak exekutatzeko (agian izena du fitxaulator. Zeregin horiei Cronjobs deritze normalean, eta zure webguneko scriptak erreferentzia daitezke.

Cron diagramaren azalpena

Nola konfiguratu dezaket Crontab

Cron benetan martxan jartzea erronka izan daiteke, beraz, hona hemen zer ikasi nuen eta nola egin nuen Zurrupatu bada:

  1. Nire script-a konfiguratu nuen Twitter-en egiaztatzeko API ea inork erantzun ote duen @ifsuck. Mezu horiek dagoeneko webgunean gordeta nituen mezuekin alderatu ditut, berriak sartuz.
  2. Script-a funtzionatu ondoren, erabiltzaileak baimenak gaitu nituen script-a exekutatzeko (744) eta scriptaren erreferentzia gehitu nuen Cronjob fitxategian - geroago gehiago.
  3. Orduan, nire webgunean SSH bidez sartu behar nuen. Mac batean, Terminal irekitzea eta idaztea behar zen SSH erabiltzaile izena@domain.com non erabiltzaile izena erabili nahi nuen eta domeinua webgunea zen. Ondoren, pasahitza eskatu eta eman zidaten.
  4. Orduan saiatu nintzen scripta komando-gonbitetik zuzenean exekutatzen zerbitzarian fitxategi-izena eta bide erlatiboa idatziz: /var/www/html/myscript.php
  5. Ondo funtzionatu nuenean, beharrezko Unix kodea gehitu nuen fitxategiaren lehen lerroan: #! / usr / bin / php -q . Uste dut honek Unix-i PHP-ri script-a exekutatzeko erabiltzeko esaten diola.
  6. Terminal komando lerroan idatzi nuen crontab (beste batzuek idatzi beharko dute crontab -e) eta sakatu enter ... eta hori besterik ez zen behar!

Cronjob fitxategiaren sintaxia

Aurreko 2. zenbakiari dagokionez, Cron-ek zure scriptak noiz exekutatuko diren zehazteko eskema bikaina erabiltzen du. Egia esan, kopiatu eta itsatsi dezakezu zure Cronfile-n (nire ostalarian, hemen dago / var / spool / cron / fitxategi izenarekin nire erabiltzaile izenaren berdina).

# + —————- minutua (0 - 59)
# | + ————- ordua (0 - 23)
# | | + ———- hileko eguna (1 - 31)
# | | | + ——- hilabetea (1-12)
# | | | | + —- asteko eguna (0 - 6) (igandea = 0 edo 7)
# | | | | |
* * * * * /var/www/html/myscript.php

Goian aipatutakoak minuturo exekutatuko du nire script-a. Orduan behin exekutatzea nahi izanez gero, ordua igarotakoan zenbat minutu nahi nituzkeen jarriko nuke, beraz, 30 minutuko markan egongo balitz:

30 * * * * /var/www/html/myscript.php

Ziurtatu fitxategi honetarako baimenak exekutagarri gisa ezarri dituzula ere! Sintaxia, baimenak eta crontab Terminal leihotik exekutatzea faktore garrantzitsuenak zirela aurkitu nuen. Fitxategia berriro gordetzen dudan bakoitzean, nire baimenak berrezarri behar direla ere aurkituko dut!

EGUNERATZEA: Lanak exekutatzen direla ziurtatu nahi baduzu, modu bakarra datu-basearen eremua eguneratzea da, script-a exekutatu den azken aldian. Gutxiago bada, zuk zeuk bidalitako mezu elektroniko bat idatz dezakezu.

Cron baliabide osagarriak:

Zenbat lan automatiza ditzakezu Cron erabiliz?

8 Comments

  1. 1

    Cron bat konfiguratzeari buruzko artikulu estalia. Crojobs-entzat berria denarentzat, cron bat konfiguratzearen alderik zailena cronjob exekuzio tartea jakitea da, eta nahiko arrunta da lehen saiakeran tarte okerra lortzea. Kronologoek denbora zehazten badute, komeni da script batzuetan kode batzuk sartzea egoeraren berri emateko, lanaren exekuzioaren egoeraren berri izan dezazun.

  2. 2

    Kaixo Doug,

    Kron lanekin lan egitean kontuan hartu beharreko gauza pare bat.

    Lehenik eta behin, dozena batzuk igaro ondoren, gustatuko litzaizuke UI, datu base bat eta ingeles itxurako sintaxia you izatea

    Bigarrenik, cron-ek lana zehaztuko duen unean despedituko du, lanaren aurreko deialdia burutu den ala ez kontuan hartu gabe. Beraz, minutuan 2 minutu behar dituen lan bat laster egiteak lan bera asko sortuko du.

    Ondoren, akatsen berri ematen ez denean, zerbait gaizki ateratzen denean, beraz, zeure akatsen berri eman beharko duzu.

    Pare bat modutan zuzendu ditut hauek:
    - Aplikazioa cron itxuraren bidez aktibatu datu base batean exekutatu behar dena zehazteko. Exekutatu minutu edo orduro behin nahi duzunaren arabera
    - script bakoitzak 'blokeo' fitxategi bat sortu dezan / tmp-n eta badago, ez berriro hasi. Horrek nahi ez badituzu lan bikoiztuak eragozten ditu.
    - Scriptak blokeo-fitxategia ordu 1 baino zaharragoa aurkitzen badu (edo hil zinela iradokitzen duen guztia) bidali posta elektroniko bidezko alerta bat
    - Gidoiak lana bidali duenean mezu elektronikoa bidali dezala, zerbait oker joan dela jakiteko
    - begiratu Flux edo programatzaile komertzialak bezalako esparruak zure beharrak script batzuetatik haratago doazenean

    Chris

  3. 4

    Linux / Unix sistema gehienetan ere gehituko dut "crontab -e" dela zure crontab editatzeko erabiltzen duzuna. Zure ostalariak (Jumpline) segurtasun arrazoiengatik aldatutako bertsioa erabiltzen duela uste dut.

  4. 5

    Gogoan dut oraindik Cronnie ezagutu nuen lehen eguna. Gauzak entzun nituen berari buruz, fidagarria zela, beti garaiz, baina batzuetan nahastu samarra bere asmoekin.

    Egia zela iruditu zitzaidan hasieran misterio erabatekoa zela eta. Bere inguruan galdetu ondoren, nahiko azkar antzeman nuen nola funtzionatzen zuen gustatzen zitzaion. Orain, ezin dut imajinatu nire bizitzan bera gabe egun bat igarotzen. Egunerokotasuna zirraragarria egiten du, eta zama asko altxatzen ditu nire sorbaldetatik.

    Seriotasun osoz, gainbehera kron lanekin automatizatu dezakedanarekin soilik marratu dudala iruditzen zait. Garatzaileen lagunik onena dira benetan. Zure zerbitzaria kudeatzeko CPanel bezalako norbait erabiltzen baduzu, askoz ere interfaze atseginagoa eskaintzen du cronak sortzeko. Zuretzako cron lerroa eraikitzen duten minutu, ordu, egun, hilabete eta abarreko goitibeherako menuekin osatua.

  5. 7

    Zalantzarik gabe, merkatari guztiek erabili beharko luketen zerbait dela ikusten dut ... Ba al dago inor zerbitzu hau eman dezakeenik, gehiegi "teknikoa" delako?

Zer deritzozu?

Gune honek Akismet-ek spam erabiltzen du. Ikasi zure iruzkina nola prozesatu den.