Mestring af Cron Job og automatisering af grundlæggende serveropgaver

Webhosting er designet til at være let, ligetil og perfekt til den professionelle, der er på farten og simpelthen ikke kan dedikere hver time af hver dag til at styre deres hosting-server og tilknyttede opgaver.


Til dette formål tilbyder næsten hver server, der er baseret på Unix eller Linux, en automatiseret task manager, der kaldes “Cron Job” eller “Crontab.”

Dette softwareprogram er meget lig med opgaveplanlæggeren i Microsoft Windows, idet det kan få besked om at gøre visse ting på bestemte tidspunkter, hvilket sparer en bruger fra at udføre disse opgaver manuelt. Dette er især vigtigt, når man overvejer, at det kan tage timer og timer at gennemføre mange rutinemæssige servervedligeholdelses-, backup- og kommunikationsprocedurer. De fleste mennesker ønsker simpelthen at gå hjem efter en dag på kontoret og slappe af, snarere end at bruge deres aften på at tage backup af filer og styre kontakter.

Disse mennesker er heldige, da hver opgave kan planlægges dagligt, ugentligt eller månedligt – eller endda længere fra hinanden, i nogle tilfælde, og specifikke instruktioner kan gives til serveren i Crontab-hjælpeprogrammet om, hvordan man udfører opgaven , hvordan man ved, hvornår det er færdigt, og hvad man skal gøre, når den aktuelle opgave faktisk er afsluttet.

Brugere kan slappe af, mens deres server udfører alt det tunge løft i timevis; eller de kan blot planlægge det arbejde, der skal afsluttes, mens de er hårdt på arbejde på deres egne kontorer. Fordi det er automatiseret, kan et Cron-job forekomme næsten enhver time om dagen.

Lær at fortælle tid ved hjælp af et Cron Jobs format

Et Cron-job er ikke nøjagtigt en nem ting at mestre; faktisk betragtes det som en af ​​de mest avancerede konfigurationer, der er tilgængelige på en standard Linux- eller Unix-webserver. Dette skyldes delvis, at det sprog, der blev brugt til at programmere disse job, er så arkaisk og i nogle tilfælde helt baglæns. Når det kommer til at fortælle et bestemt tidspunkt om det aktuelle Cron-job eller Cron-fanebladet, er tingene bestemt bagud, på hovedet og lidt forvirrende.

Formatet til at fortælle tid via et Cron-job er sådan:

MINUTTID DAG-MÅNEDS MÅNED DAG-FOR-UGE-KOMMAND

Det hele er én linje, og lige antal og kommando er side om side i en ensartet sammentrækning. Det er nok til at få de fleste udviklere og serveroperatører til at vinde, og faktisk gør mange af dem, indtil de får fat på at udvikle et effektivt Cron-job.

Det er vigtigt at bemærke, at alle aspekter af Cron-jobets tid er numeriske; der er ingen månedsnavne dagnavne, eller andre ord brugt i hele udviklingen af ​​det tidsrum, i hvilket en opgave skal udføres.

Lad os derfor oprette et Cron-job kl. 10.30 den 7. juli for at få en fornemmelse af, hvordan et Cron-job ser ud, når det omdannes til strengt tal.

30 10 07 07 *

I eksemplet ovenfor hedder det, at jobbet skal være afsluttet i det 30. minut i den tiende time på den syvende dag i den syvende måned. Alle numre er to cifre lange, selv når måneden eller dagen kun er et enkelt ciffer. Dette er vigtigt at huske, da et enkelt ciffer ofte vil forårsage, at Cron-jobbet er ugyldigt, og det simpelthen ikke udføres, nogensinde. I slutningen af ​​con-strukturen angiver en stjerne, at jobbet skal udføres på en hvilken som helst dag i ugen. Dette er vigtigt, da det at indstille det til 03 til onsdag ville betyde, at opgaven kun ville blive udført den 7. juli, hvis denne dag var en tirsdag. Det sker sandsynligvis en gang hvert syv eller otte år, hvilket er en lille absorbering for de fleste udviklere at overveje.

En anden vigtig overvejelse, der skal tages, når man opretter et Cron-job, er, at timeformatet er 24-timers militær tid snarere end 12-timers civil tid. For at ændre tiden for Cron-job til kl. 10, ændres timen til 22 i stedet for den aktuelle 10.

Eksempler på Cron Job

Endelig, hvis en bruger blot ønsker at udføre en opgave dagligt, månedligt eller endda årligt, kan de springe processen med at indstille et bestemt tidspunkt helt ud. I stedet tilvejebringer Cron-jobprocessen blot brug af variabler, der bestemmer, hvornår et job udføres med disse hyppige intervaller. Disse inkluderer:

  • @daglige
  • @månedlige
  • @yearly

Da tiden ikke kan kontrolleres og bestemmes strengt ved hjælp af timer og minutter, vil disse job ske nøjagtigt midnat, i henhold til serverens interne tid, i det anmodede interval. Det betyder, at det @ månedlige interval forekommer nøjagtigt midnat den første dag i hver måned. @Yearly-intervallet forekommer nøjagtigt midnat den første dag i hvert år; og @daily-intervallet forekommer nøjagtigt midnat hver eneste dag i året.

Dette er langt lettere end at indstille en bestemt dato, tid og ugedag, men visse opgaver, der udføres ved midnat den første dag i måneden eller året, kan have nogle ulemper for visse kunder. Husk altid behageligheder fra både administratorer og besøgende, når du planlægger opgaver, der finder sted nøjagtigt midnat.

Tag fat i variablen “COMMAND” og hvad man skal gøre med det

Som det kan ses i eksemplet ovenfor, er det relativt let at konstruere et faktisk Cron-job. Datoen skal først defineres, og derefter defineres Cron-jobets funktion straks bagefter. Denne funktion kan bogstaveligt talt være alt, herunder køre et PHP-script eller køre et tilpasset backup-script, der gemmer serverens filer og data i enten en ekstern eller lokal fil. For afklaring, bygger vi på det eksempel, der tidligere blev brugt, og instruerer Cron-jobbet til at køre et PHP-script den 7. juli kl. 10:30 om morgenen. Dette PHP-script kaldes “backup.php”, og vi antager, at PHP-filen er et komplet backup-script, der samler, komprimerer og gemmer webstedsfiler den syvende i måneden, når serveren bliver bedt om at gøre det. Sådan ser det ud:

30 10 07 07 * http://your-domain-name.com/backup-scripts/backup.php

Når dette Cron-job indtastes på listen over serverens Cron-faner, udføres det automatisk kl. 10:30 hver 7. juli hvert år. Det kører PHP-backup-scriptet, der er placeret i biblioteket “backup-scripts”, og det er her, det sande geni af Cron-jobopsætningen fungerer.

I stedet for at kræve avancerede kommandoer fra sine brugere til at udføre ting som websteds-sikkerhedskopieringer og cache-flushes, giver det brugerne simpelthen muligheden for at udføre eksisterende scripts i et bestemt interval eller på en bestemt dato på et bestemt tidspunkt. Dette betyder, at der ikke er behov for avanceret programmeringskendskab ud over, hvad brugeren allerede kender. PHP er perfekt i stand til at sikkerhedskopiere webstedsfiler, ligesom meget mere avancerede filer og programmeringssprog, som den mere sofistikerede bruger muligvis udvikler til deres Linux-server.

Denne enkle opsætning kan bruges til at gøre stort set alt, så længe et forudskrevet script tilvejebringer udførelse af disse handlinger uafhængigt af brugerinput. Dette betyder, at ethvert script, der udføres af et Cron-job inden for en Cron-fane, dog skal være fuldt automatiseret og kunne udføre på egen hånd. For eksempel ville det være umuligt (og simpelthen ulogisk) at fortælle Cron-jobbet at udføre et WordPress-indeks eller en temafil hver dag på samme tid. Der er simpelthen ikke defineret nogen handlinger eller automatiserede processer, og selvom Cron-jobbet helt sikkert ville udføre filen, ville det ikke gøre noget og ville sidde statisk, indtil brugerinput blev leveret på en anden måde.

Af denne grund, hvis kodning eller download af sikkerhedskopier eller andre til at arbejde med Cron-job, skal du altid sørge for, at de har brug for nøjagtigt nul brugerinput for at udføre deres funktioner med succes. En automatiseret opgaveplanlægning skal parres med en automatiseret proces i den fil, den udfører. Der er ingen undtagelser fra denne regel.

Mastering af den overordnede Cron-fanefil på en typisk server

Hvert specifikt Cron-job, der er specificeret til udførelse, ligger inden for en større fil, der er kendt som en Cron-fane. Nogle servere har flere Cron-faner til flere typer applikationer og automatiserede input, men dette er sjældent og i vid udstrækning forbeholdt de mest avancerede serveroperatører og ejere. De, der kun har en Cron-fanefil, kan bruge kommandoerne nedenfor til at redigere, slette eller se filen i sin helhed med hver af deres specifikke automatiserede opgaver, der er vist til visning i filen.

crontab -r

Denne kommando fjerner (således “r”) eller sletter hele Cron-fanefilen i sig selv. Dette vil effektivt rense det fra alle kommandoer og automatiske scripts og gendanne det til en tom fil, der kan genopbygges. Dette er en passende mulighed for dem, der har formået at ødelægge filen eller på en eller anden måde forkert opgaver og tider. Nogle gange er det simpelthen lettere at starte overalt.

crontab -e

I dette tilfælde står “e” for “redigering.” De brugere, der ønsker at redigere funktionerne beskrevet i en Cron-fane snarere end at slette filen helt, kan bruge denne kommando til at blive ført til kommandolinjeditoren, som giver dem mulighed for at tilføje nye opgaver, fjerne gamle eller ændre den relevante tidsplan tider for hvert Cron-job, der er anført i fanebladet Cron.

crontab -l

I dette tilfælde er det let nok at huske ved at knytte “L” til “look”. Denne kommando giver en serveradministrator simpelthen mulighed for at se det fulde indhold i deres Cron-fanefil uden at fjerne det fra serveren helt og uden muligheden for at redigere indholdet. Denne skrivebeskyttede visning af Cron-faneindholdet er perfekt til at huske, hvilke opgaver der er planlagt til hvilke tidspunkter, og til at verificere selve filens integritet.

Hvorfor det er vigtigt at mestre Cron Job og en Cron Tab automatiseringsfiler

Generelt set er det eneste, der automatiseres ved en server, spinding af dens harddisk og ydelsen af ​​dens hardwarefunktioner. Ud over det skal serveren dog trænes og instrueres i at udføre rutinemæssige og ekstraordinære opgaver, der går ud over blot at vise et softwarekontrolpanel eller opgradere installationen af ​​PHP eller Perl, som en bruger har placeret på harddisken.

Det er vigtigt at huske, at en af ​​de mest væsentlige funktioner, som en server kan udføre regelmæssigt, er oprettelsen af ​​en sikkerhedskopi af data og indstillinger på webstedet. Der er praktisk taget ingen måde at automatisere denne proces uden et Cron-job, og på grund af beskaffenheden af ​​internettet og alle ondsindede besøgende, der dagligt passerer et sted, kan manglende automatisering af denne proces dagligt eller ugentligt resultere i betydelige og katastrofalt datatab.

Derudover er der dog en række opgaver, der skal automatiseres ved hjælp af Cron-jobprocessen. Disse opgaver inkluderer rensning af webstedscacher, der muligvis viser forældede billeder eller trykt indhold til besøgende på webstedet; det inkluderer også at slette gamle filer, rydde op i gamle mapper og billeder og sørge for, at alt, der er gemt på en servers harddisk, er aktuelt og uafbrudt.

Ligesom en sund personlig computer automatisk planlægger diskvedligeholdelse, antivirus- og malware-scanninger, softwareopdateringer og sletning af filer, skal en sund server konfigureres til at tage sig af sig selv og forblive i god stand. Ellers bliver det sårbart over for nedbrud, hackingforsøg og datatab, som vil føre til tabt overskud, reklame, oprettelse af indhold og endda status for søgemaskiner.

Let at lære og lettere at implementere

Oprettelse af et Cron-job inden for en standard Cron-fane er en af ​​de nemmeste ting, som en serveradministrator kan gøre.

Processen ligger inden for standardkommandolinjen og opdeler hvert segment af tid til en tocifret kode.

Da det ikke kræver yderligere viden om noget nyt programmeringssprog for at automatisere opgaver, bygger tjenesten i det væsentlige på den eksisterende viden om programmering og serverdrift, som en administrator allerede har. Da dette er tilfældet, er der simpelthen ingen grund til ikke at begynde at automatisere væsentlige serverfunktioner og sikre integriteten af ​​webstedsdata og -operationer.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map