Cron-guide og -tutorials: Automatiser opgaver

Afsløring: Din support hjælper med at holde webstedet kørt! Vi tjener et henvisningsgebyr for nogle af de tjenester, vi anbefaler på denne side.


Cron-job og crontabs: de lyder futuristisk. Men til gamle hackere bringer de minder tilbage fra en enklere tid med Bourne-skallen og vi og AWK: Unix-værktøjer, der ikke er meget brugt mere.

Men selvom det måske er sandt, at få mennesker stadig bruger vi, er cron mere brugt i dag, end det nogensinde har været. Faktisk er det grundlaget for en masse seje ting, du gør på dit websted uden selv at vide det.

Hvad er Cron?

I henhold til den originale cron-forfatter, Ken Thompson, stammer navnet fra det græske ord chronos, der betyder ”tid”. Så cron er det grundlæggende planlægningsprogram for Unix-operativsystemet. Det giver brugerne mulighed for at planlægge processer, der skal køres. Det kan være en gang ting som en planlagt systemlukning. Eller det kan være periodiske ting som en natlig sikkerhedskopi. Cron er en dæmon – en baggrundsproces, der altid kører. Det holder styr på, hvad der skal gøres, og hvornår.

Men det store ved det er, at du ikke behøver at bekymre dig om, hvordan det fungerer; du behøver bare at bekymre dig om, hvordan du bruger det.

Cron Job

Et cron-job er en individuel kommando. Den fortæller cron hvilken kommando der skal køres og hvornår. Vi får detaljerne om det på et øjeblik.

crontab

Crontab er en tabel med cron-job – en “cron tab (le).” Crontab er bare en tekstfil. Hver linje i det repræsenterer et cron-job. Generelt har ethvert computersystem en global crontab, som vedligeholdes af systemadministratoren. Men hver bruger har deres egen personlige crontab.

Dette er, hvordan de fleste webserver kontrolpaneler tillader brugere at indstille tidsbestemte begivenheder. Men det er også sådan, at CMS’er som WordPress er i stand til at arbejde noget af deres magi.

Crontab-format

Crontab er fyldt med kommentarlinjer og cron joblinjer. Som med de fleste kommandofiler af Unix, linjer, der starter med hashtag-symbolet (nummer, pund), “#.” (Symbolet bruges også til at ændre timingsfunktioner hver dag, men dette er ikke standard.)

Cron-joblinjer består af seks dele: fem timingparametre og en kommandoparameter. Så hver cron joblinje er organiseret som følger:

Min time DoM man DoW-kommando

Disse er defineret som følger:

  • Min: minutets time (0-59).
  • Hour: the hour of the day (0-23).
  • DOM: måned i måneden (1-31).
  • Man: årets måned (1-12 eller jan-dec).
  • DoW: ugedagen (0-6 eller sol-lør).
  • Kommando: alt, hvad du normalt kan køre på en kommandolinje.

Tidsparametre

Alle parametre for cron-job tillader tre specialtegn.

Særlige tegn

  • Stjerner: Generelt vil du se en masse stjerne i timingparametrene. En stjerne angiver alle mulige værdier. Så hvis en asterisk, der bruges til Min-parameteren, kører cron-jobbet i hvert minut (det stemmer overens med de andre tidsindstillingsparametre).
  • Komma: timingsparametrene kan bestå af mere end et enkelt tal. Et komma bruges til at adskille diskrete værdier. For eksempel ville en Min-parameter på 3,27,51 få cron-jobbet til at køre på minutter 3, 27 og 51.
  • Bindestreger: en bindestreg bruges til at indikere et interval af værdier. For eksempel vil en Min-parameter på 3-51 få cron-jobbet til at køre på minutter 3 til 51. Bemærk, at kommaer og bindestreger kan bruges sammen. Så et minut på 3-15,39-51 ville køre kommandoen på minutter 3 til 15 og 39 til 51.

Kommandoparameter

Kommandoparameteren kan være en hvilken som helst kommando, som du kan indtaste på en kommandolinje. Bemærk dog, at du ikke kan interagere med det. Så hvis det kræver brugerinput, skal det leveres i crontab. Dette gøres ved at bruge procenttallet (%). Alle data efter den første “%” sendes til kommandoen som standardinput. Efterfølgende “%” -tegn tolkes som newline-tegn.

eksempler

Her er et par enkle eksempler:

# Kør kommando hvert minut af hver dag
* * * * * / bin / ls -R / > /etc/FileList.txt
# Kør kommando hver midnat hver dag
0 0 * * * / skraldespande / ls -R / > /etc/FileList.txt
# Kør kommando kl. 20.03 hver tirsdag
3 20 * * 2 / skraldespande / ls -R / > /etc/FileList.txt
# Kør kommandoen kl. 1:00 den 7. dag i hver måned
0 1 7 * * / skraldespande / ls -R / > /etc/FileList.txt
# Kør kommandoen kl. 18.45 hver fredag ​​i august
45 18 * 8 5 / skraldespande / ls -R / > /etc/FileList.txt

Og her er et par mere komplekse eksempler:

# Kør kommando hvert minut i den første halve time i hver time hver dag
0-29 * * * * / bin / ls -R / > /etc/FileList.txt
# Kør kommando hver midnat på årets første dag
0 0 1 1 * / skraldespand / kat > /etc/motd.txt%Heldig nytår, alle sammen!% Håber, at dit er godt!
# Kør kommandoen klokken 20:03 på den anden dag i året
3 20 2 1 * / skraldespand / kat > /etc/motd.txt%Dette år trækker sikkert!
# Kør kommandoen kl. 13.00 og 13.00 den 7. dag i hver måned
0 1,13 7 * * / skraldespande / ls -R / > /etc/FileList.txt
# Kør kommandoen kl. 18.45 hver fredag ​​i januar til april og august
45 18 * 1-4,8 5 / skraldespande / ls -R / > /etc/FileList.txt

Variationer

Der er variationer og udvidelser til de grundlæggende crontab- og cron-job, som vi har diskuteret.

Især giver nogle systemer mulighed for en anden og et årsparameter. Et andet tegn er undertiden også tilgængeligt for DoM- og DoW-parametrene: L. Det bruges dog forskelligt for hver parameter. For DoM betyder en ensom “L” den sidste dag i måneden. For DoW føjes “L” til dagnummeret for at indikere den sidste dag i måneden. For eksempel angiver “1L” den sidste mandag i måneden. Endelig indeholder nogle systemer makroer som @daily.

Crontab-program

Folk, der er nye inden for Unix, finder ofte crontab forvirrende, fordi der er en crontab-fil og et crontab-program. Det er bedst at tænke på crontab som en fil. Crontab-programmet er bare en enkel ting, der giver brugerne mulighed for at vise og redigere crontab-filen. Medmindre du er en systemadministrator, bruger du normalt en webbaseret interface. Den vigtigste ting at huske er, at crontab-programmet ikke er det cron-program, som vi diskuterer nedenfor.

Hvis du har kommandolinjeadgang til din maskine, kan du bruge crontab-programmet direkte. Der er to måder at bruge det på.

Crontab-import

En crontab-formateret fil kan importeres til en brugers eller den globale crontab-fil ved hjælp af følgende syntaks:

crontab [-u bruger] -fil

Hvis brugeren ikke gives, antages standardbrugeren. Hvis filen ikke er givet, vil programmet læse fra standardindgangen.

Crontab Edit

Den næste kommando er meget ens, men giver dig mulighed for at se, redigere eller slette den aktuelle crontab-fil:

crontab [-u bruger]

I dette tilfælde skal brugeren vælge en af ​​switchene, -l, -r eller -e. Switch -l får programmet til at vise den aktuelle crontab-fil. -R-kontakten fjerner den aktuelle crontab-fil. Vær forsigtig med den! Og -e-kontakten giver dig mulighed for at redigere crontab-filen.

Brug af Cron

De fleste mennesker redigerer aldrig en crontab selv. Normalt bruger folk en grænseflade til det. I cPanel kan for eksempel cron-job føjes til systemet med en form, der ser sådan ud:

Cron Job Form

Andre kontrolpanelssystemer tilbyder de samme funktioner.

At lære Cron

Hvis du administrerer servere eller skriver CMS-plugins, kan du måske tage et dybt dykk ned i cron. Men til en vis grad afhænger dette af, at du kommer i manualer og specifikationer. Det sværeste ved cron er, at forskellige systemer har skabt deres egne extensions og idiosyncrasies. Men for langt de fleste af dit arbejde skal du kun have basiskoden.

Cron-tutorials

Disse tutorials får dig i gang med cron- og crontab-filer. Nogle af dem går i en god dybde.

  • Planlægning af opgaver med Cron Jobs: en grundig introduktion til hele cron-systemet fra det grundlæggende til avancerede emner.
  • Linux Crontab: 15 Awesome Cron Job Eksempler: en tutorial i et spørgsmål og svar format.
  • Newbie: Intro til Cron: Unix Geeks ‘grundlæggende introduktion til cron med masser af eksempler.
  • En kort introduktion til Cron Jobs: en enkel introduktion til cron med vægt på at bruge crontab-kommandoen i stedet for manuelt at redigere crontab-filen.
  • Planlæg opgaver på Linux ved hjælp af Crontab: en klar introduktion til cron-planlægning på Linux-servere.
  • CronHowto: Ubuntu-dokumentations introduktion til cron, crontab og alternativer

Cron Manuals

På ethvert Unix-system, du har, vil du være i stand til at få oplysninger om dens cron-implementering ved hjælp af kommandoen man:

  • % man crontab # Viser manualen til crontab-kommandoen.
  • % man 5 crontab # Viser manualen til crontab-filformatet.
  • % man cron # Viser manualen til cron-dæmonen.

Her er manualerne online til Linux og FreeBSD:

  • Linux Crontab File: manualen til den crontab fil, der bruges i Linux.
  • Linux Crontab-kommando: manualen til Linux-applikationen til tilføjelse af cron-job til crontab-filen.
  • Linux Cron Daemon: manualen til Linux cron daemon – programmet, der gør alt arbejde.
  • FreeBSD Crontab-fil: manualen til den crontab-fil, der bruges i FreeBSD.
  • FreeBSD Crontab-kommando: manualen til FreeBSD-applikationen til at tilføje cron-job til crontab-filen.
  • FreeBSD Cron Daemon: manualen til FreeBSD cron daemon – programmet, der gør alt arbejde.

Cron værktøjer

En masse af disse værktøjer vil ikke kun hjælpe dig med at få cron til at planlægge ting, som du vil have dem, de vil give dig indsigt i, hvordan hele systemet fungerer.

  • Crontab – hurtigreference: en praktisk reference til brugere, der allerede er bekendt med systemet.
  • Crontab Generator: et punkt- og klikgrænseflade, der udsender en crontab-linje for uanset planlagt opgave, du ønsker.
  • Opret nemt Crontab-syntaks: en anden crontab-generator, men en, der virkelig er nyttig til at lære at oprette dine egne crontab-filer ved hånden.
  • Crontab Editor: det modsatte af en generator; du indtaster cron-joboplysningerne, og det fortæller dig, hvad du har planlagt.
  • Standard Cron Jobs: en introduktion til at oprette cron job med cPanel fra SiteGround.
  • Brug af Cron: en introduktion til at bruge cron med eksempler ved hjælp af Plesk-kontrolpanelet.

Cron-alternativer

Da planlægning er en så vigtig del af computeren, er der mange valgmuligheder med hensyn til software til at gøre det. Cron er standarden, men hvis du har mere avancerede eller blot forskellige behov, kan nogle af disse alternativer muligvis passe til dine formål.

  • Anacron: en cron-erstatning for computere, der ikke altid kører. Så den kan håndtere situationer, hvor computeren ikke kører, når en opgave er planlagt.
  • Fcron: generelt en erstatning for cron, men som anacron kræver det ikke, at systemet altid kører.
  • Hcron: en cron-erstatning med et forbedret tabelformat, jobuafhængighed og en netværksorientering.
  • JAMS: et kommercielt virksomhedsplanlægningssystem.
  • Jobber: et kommercielt produkt med planlægningsegenskaber kombineret med klientkontrol og fakturering.
  • Chronos: et distribueret planlægningsprogram designet til skybaserede systemer.

Resumé

Planlægning af opgaver er en af ​​de vigtigste aspekter ved arbejde med computere – det er en af ​​måderne, de sparer dig meget tid på. Og hvis du arbejder med Linux-servere, bruger du sandsynligvis allerede cron. Men med lidt viden kan du bruge det til at forbedre din produktivitet i høj grad og reducere de kedelige og fejl udsatte dele af dit job.

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