Crontab Manual – Planlægning af opgaver i Linux

At udføre de samme opgaver igen og igen, hvad enten det er på daglig, ugentlig eller månedlig basis, er en opgave, der med tiden trætter og degenererer, afhængigt af dens kompleksitet, hvor vi lader den ligge. Løsningen på dette problem er at automatisere det så meget som muligt. Ligesom Windows giver os mulighed for at automatisere visse opgaver, Linux tilbyder os også denne mulighed gennem Crontab, men ikke udelukkende.

Hvis vi ønsker at automatisere driften af ​​Linux, det være sig at lave en sikkerhedskopi, generere rapporter, ændre konfigurationen eller til noget andet, er løsningen at bruge Crontab i kombination med Cron, da vi i modsætning til Windows har brug for to ansøgninger minimum.

Crontab manual

Hvad er Crontab?

Crontab er en tekstfil, hvor automatiseringer oprettes baseret på en række parametre, en tekstfil, dvs læst af Cron . Begge applikationer er tilgængelige indbygget i de fleste af de mest almindelige Linux-distributioner, så det er ikke nødvendigt at installere noget repository på vores computer for at kunne bruge dem.

Crontab tilbyder os en række scripts, et pr. linje, der giver os mulighed for at tilpasse det nøjagtige tidspunkt, hvor vi ønsker at udføre en eller flere opgaver og deres gentagelser over tid. Faktisk stammer dets navn fra det græske ord Cronos , hvilket betyder tid. Hvert script indeholder information om den nøjagtige dato, hvor det skal udføres, hvilken dato er angivet med en række tal. For eksempel, en knap. Følgende script kører nfsfind hver søndag kl. 5:30 om morgenen

30 5 * * 0 /usr/lib/fs/nfs/nfsfind

De første to tal repræsenterer timen, hvor kommandoen vil blive udført, det første tal er minuttet og det andet timerne. Tidsformatet brugt af Crontab er 24 timer, så hvis vi ønsker at udføre opgaven klokken 5 om eftermiddagen, vil dette være tallet 17. Stjernerne repræsenterer alle værdierne, mens tallet 0 svarer til søndage.

Forveksle ikke Cron med Crontab

Mens Crontab tillader os at udføre vores system automatiseringer , disse udføres, men ikke udelukkende, med Cron-applikationen, en applikation, der kører i baggrunden, og som udfører alle de opgaver, som vi tidligere har konfigureret i Crontab. Denne applikation bruger vores systemtid til at udføre dem, så det er vigtigt, hvis vi bruger en virtuel maskine, at både tidspunktet for gæstemaskinen og vores computer altid er det samme, da ellers den programmerede tid ikke vil være korrekt.

Cron læser indholdet af Crontab-filen hvert minut, så vi kan redigere den til enhver tid for at udføre opgaver, vi ønsker at udføre i samme session, uden at skulle tvinge applikationen til at læse dens indhold igen for at finde nye scripts til at køre.

Ikke alle brugere har mulighed for at oprette Crontab-filer for at automatisere systemopgaver. Systemadministratoren har muligheden for at tillade eller afvise denne mulighed gennem filen cron.allow eller cron.den henholdsvis, filer fundet i /etc/cron.do /etc/ afhængigt af den version af Linux-distributionen, vi har. installeret på vores computer.

Sådan automatiseres opgaver i Linux

Som vi har nævnt ovenfor, starter Crontab-scripts med den dato, vi ønsker, at de skal udføres efterfulgt af kommandoen. Crontab-syntaksen er som følger.

Planlæg styring

minuto hora día-del-mes mes día-de-la-semana ruta-comandos

  • Minut, dette kan være fra 0 til 59
  • Tid, som vi har nævnt, bruger Crontab 24-timers tid, så talrækken er fra 0 til 23.
  • Dag i måneden er der ikke meget mystik i denne parameter, da den går fra 1 til 31.
  • Måned, fra 1 til 12
    • Januar 1
    • februar 2
    • Marts 3
    • April 4
    • Maj 5
    • juni 6
    • Juli 7
    • August 8
    • September 9
    • oktober 10
    • November 11
    • December 12.
  • Ugedag, fra 0 til 6, søndag er tallet 0, selvom nogle versioner af Crontab også tillader tallet 7 at blive brugt. På denne måde er koden for ugedagene
    • 0 søndag
    • 1 mandag
    • 2 tirsdag
    • 3 onsdag
    • 4 torsdag
    • 5 fredag
    • 6 Lørdag

Men derudover kan vi også bruge stjernen (*) til at angive alle mulige værdier af en variabel. Hvis vi ønsker at etablere flere værdier, kan vi gøre det gennem kommaet (,) eller en række værdier, der adskiller dem med en bindestreg (-). Vi kan også indstille forskellige trin med "/".

Hvis det stadig ikke er meget klart, så viser vi dig de tidskoder, som vi kan bruge til at udføre opgaver med jævne mellemrum afhængigt af deres periodicitet

  • 0 * * * * Ved hjælp af tidskoden vil scriptet blive udført hver time på timen.
  • 0 0 * * * Hver dag vil scriptet kun blive udført én gang
  • 0 0 * * 0 Scriptet kører en gang om ugen
  • 0 0 1 * * Vil blive udført en gang om måneden
  • 0 0 1 1 * Scriptet vil blive udført en gang om året

Når vi er klar over, hvordan opgaveplanlægning fungerer i Crontab, er den første ting, vi skal gøre, at oprette filen, hvor vi skal oprette alle de processer, vi ønsker at automatisere ved hjælp af følgende kommando

crontab nombre-archivo

Hvis vi ikke vil oprette en ny, eller vi allerede har oprettet den og ønsker at redigere den, bruger vi denne kommando

crontab -e

Hvis vi ønsker at slette den oprettede Crontab-fil

crontab -d

Med følgende kommando kan vi liste alle de opgaver, der er inkluderet i Crontab-filen

crontab -d

Systemadministratorer kan begrænse brugen af ​​systemautomatiseringer ved at redigere cron.allow- eller cron.den-filerne, filer fundet i /etc/cron.d/ eller /etc/, hvis vi ikke tidligere har ændret deres placering.

automatisere opgaver

For at redigere Crontab-filen, som vi har oprettet, skal vi bruge teksteditoren, der er inkluderet i alle Linux-distributioner, selvom vi også kan redigere den direkte fra Crontab ved at tilføje variablen -e.

nano nombrearchivo

Vi introducerer den numeriske kode ledsaget af stjerner og det script, som vi ønsker at udføre. Dernæst skal vi give Cron tilladelser til at køre det, ellers vil det ikke vide om dets eksistens og vil aldrig være i stand til at køre det. For at gøre dette bruger vi kommandoen

chmod ugo+x nombrearchivo

I første omgang ser det slet ikke ud til at være let at bruge Crontab til at automatisere opgaver og minder om Linuxs (næsten almindelige) behov for at ty til kommandolinjen til praktisk talt alt, og dermed begrænse flere brugere i at adoptere Linux som operativsystem på en dag- i dag. .

Windows-opgaveplanlæggeren bruger en grafisk grænseflade, der ikke er særlig nem at bruge uden den nødvendige viden, men den er meget mere intuitiv end den, der tilbydes af Linux via kommandolinjen.

Crontab og Cron arbejdseksempel

Den første ting, vi skal gøre for at automatisere opgaver i Linux, er at oprette filen, hvor vi skal inkludere alle de kommandoer, som vi ønsker at blive udført på computeren på det tidspunkt, vi konfigurerer. I dette eksempel skal vi oprette "test"-filen, der vil være ansvarlig for at slette alle filer og tomme mapper, der findes i tmp-mappen. For at gøre det, vil vi indtaste følgende kommando.

crontab prueba

Dernæst skal vi indtaste kommandoen (eller kommandoer, der adskiller dem med semikolon ";" uden anførselstegn). I dette eksempel skal vi bruge Crontab til at slette filerne i tmp-mappen.

find /tmp -type f -empty -delete

Dernæst redigerer vi filen for at tilføje tidsplanen, det vil sige når vi ønsker at de opgaver, som vi har indtastet i filen, skal udføres.

crontab -e

For at det kan udføres hver dag kl. 10 om morgenen, skal vi tilføje 0 10 * * * før scriptet og efterlade linjen som følger

0 10 * * * find /tmp -type f -empty -delete

Hvis vi ønsker, at det skal udføres på et andet tidspunkt, skal vi blot ændre tallet 10 for den time (i 24-timers format), hvor vi ønsker, at det skal udføres. Vi kan også bruge tidskoder som vi har vist i afsnittet Programmeringsstyring for at konfigurere det. Til sidst bruger vi følgende kommando, så Cron kan udføre automatiseringsfilen, som vi har oprettet.

[code]chmod ugo+x prueba

Alternativer til Cron

Som vi har nævnt i tidligere afsnit, er Cron ansvarlig for at udføre de kommandoer, som vi tidligere har indtastet i Crontab. Cron er et perfekt værktøj til teams, der kører 24 timer i døgnet, selvom vi også kan tilpasse det til vores arbejdsplan, selvom det tager ressourcer fra teamet, mens opgaverne udføres. Hvis vi leder efter enklere muligheder for Cron, så viser vi dig nogle af de bedste alternativer.

anakron

Anacron giver os mulighed for at planlægge den automatiske udførelse af opgaver på en dag, uge ​​eller måned, når som helst. Hvis computeren er slukket, vil den opgave, vi tidligere har indtastet i Crontab, næste gang vi starter computeren blive udført. Med Cron, hvis computeren er slukket på den angivne dato, vil opgaven ikke blive udført, når vi tænder for computeren. Anacron er tilgængelig i de fleste Linux-distributioner, og vi kan installere det på computeren gennem følgende kommando.

sudo apt install anacron

Cronie

Cronie tilbyder os en meget mere komplet oplevelse end Cron, og et lille sæt applikationer (hvortil Anacron er inkluderet), og som vi kan programmere arbejdsgange med meget hurtigt og nemt gennem Crontab. I modsætning til Anacron, for at installere Cronie, er den ikke tilgængelig i Linux-lagrene, så vi skal besøge dens webside på GitHub for at downloade det, eller brug følgende kommando.

wget https://github.com/cronie-crond/cronie/releases/download/cronie-1.6.1/cronie-1.6.1.tar.gz