Behärska Cron-jobbet och automatisera grundläggande serveruppgifter

Webbhotell är utformat för att vara enkelt, enkelt och perfekt för den professionella som är på språng och helt enkelt inte kan ägna varje timme varje dag åt att hantera sin webbserver och tillhörande uppgifter.


Därför erbjuder nästan varje server baserad på Unix eller Linux en automatiserad uppgiftshanterare som kallas “Cron Job” eller “Crontab.”

Detta mjukvaruverktyg är ungefär som uppgiftsschemaläggaren i Microsoft Windows, eftersom det kan sägas att göra vissa saker vid vissa tidpunkter och spara en användare från att utföra dessa uppgifter manuellt. Detta är särskilt viktigt när man tänker på att många rutinmässiga serverunderhålls-, säkerhetskopierings- och kommunikationsprocedurer kan ta timmar och timmar att slutföra. De flesta vill helt enkelt gå hem efter en dag på kontoret och koppla av, snarare än att spendera kvällen på att säkerhetskopiera filer och hantera kontakter.

Dessa människor har tur, eftersom varje uppgift kan schemaläggas dagligen, veckovis eller månadsvis – eller ännu längre ifrån varandra, i vissa fall och specifika instruktioner kan ges till servern i Crontab-verktyget om hur man utför uppgiften , hur man vet när den är klar och vad man ska göra när den aktuella uppgiften faktiskt är klar.

Användare kommer att kunna koppla av medan deras server gör allt tungt lyft i timmar; eller så kan de helt enkelt schemalägga arbetet som ska slutföras medan de är hårda på jobbet på sina egna kontor. Eftersom det är automatiserat kan ett Cron-jobb inträffa på nästan varje timme på dagen.

Lär dig att berätta tid med ett Cron Job-format

Ett Cron-jobb är inte precis en lätt sak att behärska; Faktum är att det är allmänt betraktat som en av de mest avancerade konfigurationerna som finns tillgängliga på en standard Linux- eller Unix-webbserver. Detta beror delvis på att språket som används för att programmera dessa jobb är så arkaiskt och i vissa fall helt baklängt. När det gäller att berätta en viss tid till Cron-jobbet eller Cron-fliken i fråga, är saker säkert bakåt, upp och ner och lite förvirrande.

Formatet för att berätta tid via ett Cron-jobb är sådant:

MINUTE HOUR DAG-MÅNEDS MÅNEDS-DAG-VECKA-KOMMANDET

Det är allt en rad och jämnt antal och kommando är sida vid sida i en enhetlig sammandragning. Det räcker för att få de flesta utvecklare och serveroperatörer att vinna och i själva verket gör många av dem tills de får häng för att utveckla ett effektivt Cron-jobb.

Det är viktigt att notera att alla aspekter av Cron-jobbets tid är numeriska; det finns inga månader namn dagnamn, eller andra ord som används under utvecklingen av den tid under vilken en uppgift ska utföras.

Låt oss därför ställa in ett Cron-jobb klockan 10:30 den 7 juli för att få en känsla för hur ett Cron-jobb ser ut när det förvandlas till strikt antal.

30 10 07 07 *

I exemplet ovan anges att jobbet ska slutföras vid den 30: e minuten av den tionde timmen den sjunde dagen i den sjunde månaden. Alla siffror är två siffror långa, även när månaden eller dagen bara är en enda siffra. Detta är viktigt att komma ihåg, eftersom en enda siffra ofta får Cron-jobbet att vara ogiltigt och det helt enkelt kommer inte att utföras någonsin. I slutet av construkturen indikerar en asterisk att jobbet ska utföras varje veckodag. Detta är viktigt, eftersom inställningen till 03 för onsdag skulle innebära att uppgiften endast skulle utföras den 7 juli om den dagen var en tisdag. Det kommer sannolikt att hända var sjunde eller åtta år, vilket är lite absorberande för de flesta utvecklare att överväga.

En annan viktig övervägning att göra vid upprättandet av ett Cron-jobb är att timformatet är 24-timmars militär tid snarare än 12-timmars civil tid. För att ändra tiden för Cron-jobb till kl. 10 skulle timmen ändras till 22 i stället för den aktuella 10.

Exempel på Cron Job

Slutligen, om en användare bara vill slutföra en uppgift på en daglig, månad eller till och med årlig basis, kan de hoppa över processen att ställa in en viss tid helt. Istället tillhandahåller Cron-jobbprocessen helt enkelt att använda variabler som avgör när ett jobb utförs på dessa frekventa intervaller. Dessa inkluderar:

  • @dagligen
  • @en gång i månaden
  • @årlig

Eftersom tiden inte kan kontrolleras och bestämmas med hjälp av timmar och minuter kommer dessa jobb att ske exakt midnatt, beroende på serverns interna tid, vid det begärda intervallet. Det innebär att det @ månatliga intervallet kommer att inträffa vid exakt midnatt den första dagen i varje månad. Intervallet @år kommer att inträffa vid exakt midnatt den första dagen varje år; och @ dagliga intervallet kommer att inträffa vid exakt midnatt varje enskild dag på året.

Detta är mycket lättare än att ställa in ett specifikt datum, tid och veckodag, men vissa uppgifter som utförs vid midnatt den första dagen i månaden eller året kan ha vissa nackdelar för vissa kunder. Håll alltid behoven hos både administratörer och webbplatsbesökare i åtanke när du planerar uppgifter som inträffar vid exakt midnatt.

Ta tag i variabeln ”COMMAND” och vad man ska göra med den

Som framgår av exemplet ovan är det relativt enkelt att konstruera ett verkligt Cron-jobb. Datumet måste först definieras och sedan definieras Cron-jobbets funktion omedelbart därefter. Den funktionen kan bokstavligen vara vad som helst, inklusive att köra ett PHP-skript eller köra ett anpassat reservskript som lagrar serverns filer och data i antingen en fjärr- eller lokal fil. För förtydligande bygger vi på exemplet som tidigare användes och instruerar Cron-jobbet att köra ett PHP-skript den 7 juli klockan 10:30 på morgonen. Detta PHP-skript kommer att kallas “backup.php” och vi antar att PHP-filen är ett fullständigt backupskript som samlar, komprimerar och lagrar webbplatsfiler den sjunde månaden när servern anvisas att göra det. Så här ser det ut:

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

När detta Cron-jobb anges i listan över serverns Cron-flikar, kommer det att köras automatiskt klockan 10:30 varje 7 juli varje år. Det kommer att köra PHP-säkerhetskopieringsskriptet som finns i katalogen “backup-scripts”, och det är där den verkliga genialiteten i Cron-jobbinställningen fungerar.

Istället för att kräva avancerade kommandon från sina användare för att utföra saker som säkerhetskopiering av webbplatser och cache-flusher, ger det helt enkelt användarna möjlighet att köra existerande skript med ett visst intervall eller på ett specifikt datum vid en viss tidpunkt. Detta betyder att ingen avancerad programmeringskunskap behövs utöver vad användaren redan vet. PHP är helt kapabel att säkerhetskopiera webbplatsfiler, liksom mycket mer avancerade filer och programmeringsspråk som den mer sofistikerade användaren kan utveckla för sin Linux-server.

Denna enkla inställning kan användas för att göra praktiskt taget vad som helst, då så länge ett förskrivet skript tillhandahåller exekvering av dessa åtgärder oberoende av användarinmatning. Detta betyder dock att alla skript som körs av ett Cron-jobb inom en Cron-flik måste vara helt automatiserade och kunna utföra på egen hand. Till exempel skulle det vara omöjligt (och helt enkelt ologiskt) att säga Cron-jobbet att köra ett WordPress-index eller temafil varje dag på samma gång. Det finns helt enkelt inga åtgärder eller automatiserade processer definierade och även om Cron-jobbet verkligen skulle köra filen, skulle det inte göra någonting och skulle sitta statiskt tills användarinmatningen tillhandahölls på ett annat sätt.

Av denna anledning, om kodning eller nedladdning av säkerhetskopior eller andra för att arbeta med Cron-jobb, se till att de kräver exakt noll användarinmatning för att utföra sina funktioner framgångsrikt. En automatiserad uppgiftsscheman måste kopplas ihop med en automatiserad process i filen den kör. Det finns inga undantag från denna regel.

Behärska den övergripande Cron-flikfilen på en typisk server

Varje specifikt Cron-jobb som anges för körning ligger i en större fil som kallas Cron-fliken. Vissa servrar har flera Cron-flikar för flera typer av applikationer och automatiserade ingångar, men detta är sällsynt och till stor del reserverat för de mest avancerade serveroperatörerna och ägarna. De som bara har en Cron-flikfil kan använda kommandona nedan för att redigera, radera eller visa filen i sin helhet, med var och en av sina specifika automatiserade uppgifter listade för visning i filen.

crontab -r

Detta kommando tar bort (alltså “r”) eller tar bort hela Cron-flikfilen själv. Detta kommer effektivt att rensa det från alla kommandon och automatiserade skript och återställa den till en tom fil som kan byggas om. Detta är ett lämpligt alternativ för dem som har lyckats skada filen eller på något sätt felaktiga uppgifter och tider. Ibland är det helt enkelt lättare att börja överallt.

crontab -e

I detta fall står “e” för “redigera.” De användare som vill redigera funktionerna som beskrivs på en Cron-flik snarare än att radera filen helt kan använda detta kommando för att tas till kommandoradsredigeraren som gör att de kan lägga till nya uppgifter, ta bort gamla eller ändra tillämpligt schema tider för vart och ett av Cron-jobb som anges i Cron-flikdokumentet.

crontab -l

I det här fallet är det lätt att komma ihåg genom att associera “L” med “look”. Detta kommando tillåter en serveradministratör att helt enkelt se hela innehållet i sin Cron-flikfil utan att ta bort den från servern helt och utan att ha möjlighet att redigera innehållet. Denna skrivskyddade visning av Cron-flikinnehållet är perfekt för att komma ihåg vilka uppgifter som är schemalagda för vilka tider och för att verifiera filens integritet.

Varför det är viktigt att behärska Cron Jobb och Cron Tab Automation Files

Generellt sett är det enda som automatiseras med en server snurrningen av hårddisken och prestandan för hårdvarufunktionerna. Men utöver detta måste servern utbildas och instrueras att utföra rutinmässiga och extraordinära uppgifter som går utöver bara att visa en mjukvarukontrollpanel eller uppgradera installationen av PHP eller Perl som en användare har placerat på hårddisken.

Det är viktigt att komma ihåg att en av de mest väsentliga funktionerna som en server kan utföra regelbundet är att skapa en säkerhetskopia av data och inställningar. Det finns praktiskt taget inget sätt att automatisera denna process utan ett Cron-jobb och på grund av internetens natur och alla skadliga besökare som passerar en webbplats dagligen, kan misslyckande med att automatisera denna process dagligen eller veckobas resultera i betydande och katastrofala dataförluster.

Men ovanför finns det ett antal uppgifter som bör automatiseras med Cron-jobbprocessen. Dessa uppgifter inkluderar rensning av webbplatscachrar som kan visa föråldrade bilder eller tryckt innehåll för besökare; det inkluderar också att ta bort gamla filer, städa upp gamla kataloger och bilder och se till att allt som lagras på en serverns hårddisk är aktuellt och okorrupt.

Precis som en hälsosam personlig dator automatiskt schemaläggar skivunderhåll, antivirus- och skadlig programskanning, programuppdateringar och radering av filer, måste en hälsosam server konfigureras så att den tar hand om sig själv och förblir i gott skick. Annars blir det sårbart för kraschar, hackförsök och dataförluster som kommer att leda till förlorade vinster, reklam, skapande av innehåll och till och med status för sökmotorer.

Lätt att lära sig och lättare att distribuera

Att skapa ett Cron-jobb inom en standardflik för Cron är en av de enklaste saker som en serveradministratör kan göra.

Processen ligger inom standardkommandoraden och delar upp varje tidssegment till en tvåsiffrig kod.

Eftersom det inte kräver ytterligare kunskaper om något nytt programmeringsspråk för att automatisera uppgifter, bygger tjänsten i huvudsak på den befintliga kunskaper om programmering och serveroperationer som en administratör redan har. Eftersom detta är fallet, finns det helt enkelt ingen anledning att inte börja automatisera viktiga serverfunktioner och säkerställa integriteten för platsdata och funktioner.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me