Die bemeestering van die Cron-baan en outomatisering van basiese bedienertake - WHSR
Tuis / WHSR Blog / Mastering van die Cron Job en Outomatisering Basiese Server Take
Opgedateer: Oct 17, 2020
Webhosting is ontwerp om maklik, eenvoudig en perfek te wees vir die professionele persoon wat onderweg is en kan eenvoudig nie elke uur van elke dag daaraan wy nie die bestuur van hul hosting server en gepaardgaande take.
Daartoe bied byna elke bediener wat op Unix of Linux gebaseer is, 'n outomatiese taakbestuurder bekend as die 'cron"Of" Crontab. "
Hierdie sagteware program is baie soos die taakskeduler in Microsoft Windows, aangesien dit op sekere tye vertel kan word om sekere dinge te doen, om 'n gebruiker te red om hierdie take handmatig uit te voer. Dit is veral belangrik wanneer u van mening is dat baie roetine bediener instandhouding, Friends en kommunikasie prosedures ure en ure kan neem om te voltooi. Die meeste mense wil net na 'n dag in die kantoor huis toe gaan en ontspan, eerder as om hul aand te spandeer om lêers te bestuur en kontakte te bestuur.
Daardie mense het geluk, want elke taak kan daagliks, weekliks of maandeliks geskeduleer word - of selfs verder van mekaar af, en in sommige gevalle kan spesifieke bedienings aan die bediener gegee word oor hoe om die taak uit te voer. , hoe om te weet wanneer dit voltooi is, en wat om te doen wanneer die werklike taak werklik afgehandel is.
Gebruikers sal kan ontspan terwyl hul bediener ure lank al die swaar opheffings doen; of hulle kan eenvoudig die werk skeduleer wat voltooi moet word terwyl hulle hard aan die werk is in hul eie kantore. Omdat dit outomaties is, kan 'n Cron-baan feitlik elke uur van die dag voorkom.
Leer om tyd te vertel deur die formaat van Cron Job te gebruik
'N Cron-baan is nie juis 'n maklike ding om te bemeester nie; trouens, dit word algemeen beskou as een van die mees gevorderde konfigurasies wat op 'n standaard beskikbaar is Linux or Unix webbediener. Dit is gedeeltelik omdat die taal wat gebruik word om hierdie werksgeleenthede te program, so oud is en in sommige gevalle heeltemal agteruit. As dit gaan om 'n sekere tyd aan die betrokke Cron-werk- of Cron-oortjie te vertel, is dinge beslis agteruit, onderstebo en 'n bietjie verwarrend.
Die formaat om tyd via 'n Cron-werk te vertel, is soos volg:
MINUTE UUR DAG-VAN-MAAND MAAND DAG-VAN-WEEK BEHEER
Dit is alles een lyn, en die getal en die opdrag is langs mekaar in een eenvormige sametrekking. Dit is genoeg om die meeste ontwikkelaars en bedieneroperateurs te laat toeneem, en baie van hulle doen dit eintlik totdat hulle 'n kans kry om 'n doeltreffende Cron-baan te ontwikkel.
Dit is belangrik om daarop te let dat elke aspek van die Cron-baan se tyd numeries is; daar is geen maandname dagname nie, of ander woorde word gebruik gedurende die ontwikkeling van die tyd waartydens 'n taak uitgevoer moet word.
Laat ons daarom 'n Cron-baan opstel vir 10: 30 is op Julie 7th om 'n gevoel te kry vir hoe die tyd van 'n Cron-baan lyk wanneer dit in streng getalle verander word.
In die voorbeeld hierbo lui dat die werk voltooi moet word op die 30ste minuut van die tiende uur op die sewende dag van die sewende maand. Al die syfers is twee syfers lank, selfs as die maand of dag slegs 'n enkele syfer is. Dit is belangrik om te onthou, aangesien 'n enkele syfer die Cron-baan dikwels ongeldig sal maak en dit eenvoudig nooit uitgevoer sal word nie. Aan die einde van die kamstruktuur dui 'n sterretjie aan dat die werk op enige dag van die week uitgevoer moet word. Dit is belangrik, want as u dit Woensdag op 03 stel, sou dit beteken dat die taak eers op 7e Julie uitgevoer sou word as die dag Dinsdag was. Dit sal waarskynlik elke sewe of agt jaar gebeur, wat die meeste ontwikkelaars 'n bietjie absorbeer.
Nog 'n belangrike oorweging om te maak wanneer jy 'n Cron-werk opstel, is dat die uurformaat 24-uur militêre tyd is, eerder as 12-uur burgerlike tyd. Om die tyd van Cron werk na 10 pm te verander, sal die uur verander word na 22 in plaas van die huidige 10.
Ten slotte, as 'n gebruiker net 'n taak op 'n daaglikse, maandelikse of selfs jaarlikse basis wil voltooi, kan hulle die proses oorskakel om 'n spesifieke tyd heeltemal te stel. In plaas daarvan maak die Cron-werkproses voorsiening vir die gebruik van veranderlikes wat bepaal wanneer 'n werk op hierdie gereelde intervalle gedoen word. Dit sluit in:
Aangesien die tyd nie streng en met ure en minute bepaal kan word nie, sal hierdie bane volgens die interne tyd van die bediener presies middernag plaasvind, met die verlangde interval. Dit beteken dat die @ maandelikse interval presies middernag op die eerste dag van elke maand sal plaasvind. Die @jaarlikse interval vind presies middernag op die eerste dag van elke jaar plaas; en die @ daaglikse interval sal presies middernag plaasvind elke enkele dag van die jaar.
Dit is baie makliker as om 'n spesifieke datum, tyd en dag van die week in te stel, maar sekere take wat teen middernag op die eerste dag van die maand of jaar uitgevoer word, kan sekere nadele vir sekere kliënte hê. Hou altyd die behoeftes van beide administrateurs en werfbesoekers in gedagte wanneer u take opneem wat presies middernag plaasvind.
Gryp die "COMMAND" -veranderlike en wat om daarmee te doen
Soos gesien kan word in die voorbeeld hierbo, is die opstel van 'n werklike Cron-werk relatief maklik. Die datum moet eers gedefinieër word en daarna word die funksie van die Cron-pos onmiddellik daarna gedefinieer. Die funksie kan letterlik van alles wees, insluitend die bestuur van 'n PHP-script of die uitvoering van 'n aangepaste rugsteun-script wat die bediener se lêers en data in 'n afgeleë of 'n plaaslike lêer stoor. Ter toeligting sal ons voortbou op die voorbeeld wat voorheen gebruik is en die Cron-taak opdrag gee om op 7 Julie om 10:30 'n PHP-script uit te voer. Hierdie PHP-script word 'backup.php' genoem en ons neem aan dat die PHP-lêer 'n volledige rugsteun-script is wat werflêers op die sewende van die maand versamel, komprimeer en stoor wanneer die bediener dit opdrag gee. Dit is hoe dit lyk:
Wanneer hierdie Cron-taak in die lys van die Cron-oortjies van die bediener opgeneem word, word dit elke 10 Julie van elke jaar outomaties om 30:7 uitgevoer. Dit sal die PHP-rugsteunskrip uitvoer wat in die gids "rugsteun-skripte" geleë is, en dit is waar die ware genie van die Cron-taakopstelling werk.
In plaas daarvan om gevorderde opdragte van sy gebruikers te vereis om dinge soos werfkopieë en kasflushes uit te voer, gee dit net gebruikers die vermoë om bestaande skrifte uit te voer op 'n bepaalde interval of op 'n spesifieke datum op 'n spesifieke tydstip. Dit beteken dat daar nie gevorderde programmeringskennis nodig is wat die gebruiker alreeds weet nie. PHP is perfek in staat om back-up werf lêers, asook veel meer gevorderde lêers en programmeringstale wat die meer gesofistikeerde gebruiker vir hul Linux-bediener kan ontwikkel.
Hierdie eenvoudige opstelling kan gebruik word om feitlik enigiets te doen, solank as wat 'n voorafgeskrewe skrif voorsiening maak vir die uitvoering van daardie aksies onafhanklik van gebruikerinvoer. Dit beteken dat 'n script wat uitgevoer word deur 'n Cron-werk binne 'n Cron-oortjie, volledig geautomatiseerd moet wees en op sy eie kan funksioneer. Byvoorbeeld, dit sou onmoontlik wees (en net onlogies) om die Cron-werk te vertel om 'n WordPress-indeks of tema-lêer elke dag op dieselfde tyd uit te voer. Daar is eenvoudig geen aksies of outomatiese prosesse gedefinieer nie, en terwyl die Cron-werk die lêer beslis sou uitvoer, sou dit niks doen nie en sou dit staties wees totdat gebruikersinvoer op 'n ander manier voorsien is.
As gevolg van die kodering of aflaai van rugsteunskripte of ander om met Cron-werk te werk, moet u altyd seker maak dat hulle presies nul-invoer benodig om hul funksies suksesvol uit te voer. 'N Outomatiese taakskeduleerder moet gekoppel word aan 'n outomatiese proses binne die lêer wat dit uitvoer. Daar is geen uitsonderings op hierdie reël nie.
Die algehele Cron Tab-lêer op 'n tipiese bediener bemeester
Elke spesifieke Cron-werk wat vir uitvoering gespesifiseer word, lê in 'n groter lêer wat bekend staan ​​as 'n Cron-oortjie. Sommige bedieners het verskeie Cron-oortjies vir verskeie soorte toepassings en outomatiese insette, maar dit is skaars en grotendeels gereserveer vir die mees voorste bedieneroperateurs en eienaars. Diegene wat net een Cron-bladlêer het, kan die volgende instruksies gebruik om die lêer in sy geheel te wysig, te verwyder of te sien, met elk van hul spesifieke outomatiese take wat gelys word om in die lêer te kyk.
Hierdie opdrag verwyder (dus "r") of verwyder die hele Cron-tablêer self. Dit sal dit effektief van alle opdragte en outomatiese skrifte verwyder en herstel na 'n leë lêer wat herbou kan word. Dit is 'n geskikte opsie vir diegene wat daarin geslaag het om die lêer te beskadig of op een of ander manier verkeerde take en tye te gebruik. Soms is dit eenvoudig makliker om van voor af te begin.
In hierdie geval staan ​​'e' vir 'wysig'. Die gebruikers wat die funksies wat in 'n Cron-oortjie beskryf word, wil wysig eerder as om die lêer heeltemal te verwyder, kan hierdie opdrag gebruik om na die opdragreëlredakteur te gaan, wat hulle in staat stel om nuwe take toe te voeg, oues te verwyder of die toepaslike skedule te verander. tye vir elk van die Cron-poste wat in die Cron-oortjie-dokument verskyn.
In hierdie geval is dit maklik genoeg om te onthou deur die "L" met "voorkoms" te assosieer. Met hierdie opdrag kan 'n bedieneradministrateur die volledige inhoud van hul Cron-tablêer sien sonder om dit heeltemal van die bediener te verwyder en sonder om die inhoud te kan redigeer. Hierdie leesalleen vertoon van die Cron-oortjie-inhoud is ideaal om te onthou watter take vir watter tye geskeduleer is, en om die integriteit van die lêer self te verifieer.
Waarom dit belangrik is om die Cron Job en Cron Tab-outomatiseringslêers te bemeester
Oor die algemeen is die enigste ding wat geoutomatiseer word oor 'n bediener, die spin van die hardeskyf en die prestasie van sy hardeware-eienskappe. Daarbenewens moet die bediener die opgeleide en opdrag gee om roetine en buitengewone take te doen wat bo en behalwe die vertoon van 'n sagteware-beheerpaneel of die opgradering van die installasie van PHP of Perl wat 'n gebruiker op die hardeskyf geplaas het, opgradeer.
Dit is belangrik om te onthou dat een van die belangrikste funksies wat 'n bediener gereeld kan uitvoer, is om 'n webwerf-rugsteun van data en instellings te skep. Daar is feitlik geen manier om hierdie proses te outomatiseer sonder 'n Cron-baan nie, en as gevolg van die aard van die internet en al die kwaadwillige besoekers wat daagliks deur 'n webwerf gaan, kan die versuim om hierdie proses op 'n daaglikse of weeklikse basis te outomatiseer, aansienlike en katastrofiese verlies aan data.
Daar is egter 'n aantal take wat outomaties met behulp van die Cron-taakproses geoutomatiseer moet word. Hierdie take sluit in die skoonmaak van enige webwerf-geheime wat verouderde prente of gedrukte inhoud vir besoekers aan die werf kan vertoon; dit bevat ook die verwydering van ou lêers, die skoonmaak van ou mappe en prente en om seker te maak dat alles wat op die hardeskyf van 'n bediener gestoor is, aktueel en ononderbroke is.
Net soos 'n gesonde persoonlike rekenaar skeduleer outomaties skyfonderhoud, antivirus- en malware-skanderings, sagteware-opdaterings en lêerverwydering, moet 'n gesonde bediener gekonfigureer word om self te sorg en goed te staan. Andersins word dit kwesbaar vir ineenstortings, inbraakpogings en dataverlies wat tot verlore winste, advertensies, inhoudskepping en selfs posisie van die soekenjin lei.
Maklik om te leer en makliker te implementeer
Die skep van 'n Cron-werk binne 'n standaard Cron-oortjie is een van die maklikste dinge wat 'n bedieneradministrateur kan doen.
Die proses lê binne die standaard opdraglyn en breek elke segment van die tyd in 'n twee-syfer kode.
Aangesien dit geen addisionele kennis van 'n nuwe programmeertaal nodig het om take te outomatiseer nie, bou die diens basies op die bestaande kennis en kennis van bedieners wat 'n administrateur reeds besit. As dit die geval is, is daar eenvoudig geen rede om nie noodsaaklike bedienerfunksies te outomatiseer nie en om die integriteit van werfdata en -aktiwiteite te verseker.