Crontab Manual – Planlegging av oppgaver i Linux

Å utføre de samme oppgavene om og om igjen, enten det er på daglig, ukentlig eller månedlig basis, er en oppgave som over tid blir sliten og degenerert, avhengig av kompleksiteten, der vi legger den til side. Løsningen på dette problemet er å automatisere det så mye som mulig. Akkurat som Windows lar oss automatisere visse oppgaver, Linux tilbyr oss også dette alternativet gjennom Crontab, men ikke utelukkende.

Hvis vi ønsker å automatisere driften av Linux, det være seg for å lage en sikkerhetskopi, for å generere rapporter, for å endre konfigurasjonen eller for noe annet, er løsningen å bruke Crontab i kombinasjon med Cron, siden vi, i motsetning til Windows, trenger to applikasjoner minimum.

Crontab manual

Hva er Crontab?

Crontab er en tekstfil hvor automatiseringer lages basert på en rekke parametere, en tekstfil altså lest av Cron . Begge applikasjonene er tilgjengelige i de fleste av de vanligste Linux-distribusjonene, så det er ikke nødvendig å installere noe depot på datamaskinen vår for å kunne bruke dem.

Crontab tilbyr oss en serie skript, ett per linje, som lar oss tilpasse den nøyaktige tiden vi ønsker å utføre en eller flere oppgaver og deres repetisjoner over tid. Faktisk stammer navnet fra det greske ordet Cronos , som betyr tid. Hvert skript inneholder informasjon om den nøyaktige datoen det skal utføres på, hvilken dato er angitt med en rekke tall. For eksempel, en knapp. Følgende skript kjører nfsfind hver søndag klokken 5:30 om morgenen

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

De to første tallene representerer timen der kommandoen skal utføres, det første tallet er minuttet og det andre timene. Tidsformatet som brukes av Crontab er 24 timer, så hvis vi ønsker å utføre oppgaven klokken 5 om ettermiddagen, vil dette være tallet 17. Stjernene representerer alle verdiene, mens tallet 0 tilsvarer søndager.

Ikke forveksle Cron med Crontab

Mens Crontab lar oss utføre systemet vårt automatiseringer , utføres disse, men ikke utelukkende, med Cron-applikasjonen, en applikasjon som kjører i bakgrunnen og som utfører alle oppgavene som vi tidligere har konfigurert i Crontab. Denne applikasjonen bruker systemtiden vår til å utføre dem, så det er viktig, hvis vi bruker en virtuell maskin, at både klokkeslettet for gjestemaskinen og datamaskinen vår alltid er den samme, siden ellers ikke vil den programmerte tiden være riktig.

Cron leser innholdet i Crontab-filen hvert minutt, så vi kan redigere den når som helst for å utføre oppgaver vi ønsker å utføre i samme økt, uten å måtte tvinge applikasjonen til å lese innholdet på nytt for å finne nye skript å kjøre.

Ikke alle brukere har muligheten til å lage Crontab-filer for å automatisere systemoppgaver. Systemadministratoren har muligheten til å tillate eller nekte dette alternativet gjennom filene henholdsvis cron.allow eller cron.den, filer funnet i /etc/cron.do /etc/ avhengig av hvilken versjon av Linux-distribusjonen vi har. installert på datamaskinen vår.

Hvordan automatisere oppgaver i Linux

Som vi har nevnt ovenfor, starter Crontab-skript med datoen vi vil at de skal utføres etterfulgt av kommandoen. Crontab-syntaksen er som følger.

Tidsplanstyring

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

  • Minutt, dette kan være fra 0 til 59
  • Tid, som vi har nevnt, bruker Crontab 24-timers tid, så tallområdet er fra 0 til 23.
  • Dag i måneden er det ikke mye mystikk i denne parameteren siden den går fra 1 til 31.
  • Måned, fra 1 til 12
    • januar 1
    • februar 2
    • mars 3
    • april 4
    • kan 5
    • juni 6
    • juli 7
    • august 8
    • september 9
    • oktober 10
    • november 11
    • Desember 12.
  • Ukedag, fra 0 til 6, søndag er tallet 0, selv om noen versjoner av Crontab også lar tallet 7 brukes. På denne måten er koden for ukedagene
    • 0 søndag
    • 1 mandag
    • 2 tirsdag
    • 3 onsdag
    • 4 torsdag
    • 5 fredag
    • 6 lørdag

Men i tillegg kan vi også bruke stjernen (*) for å spesifisere alle mulige verdier for en variabel. Hvis vi ønsker å etablere flere verdier, kan vi gjøre det gjennom komma (,) eller en rekke verdier som skiller dem med en bindestrek (-). Vi kan også sette forskjellige trinn med "/".

Hvis det fortsatt ikke er veldig tydelig, viser vi deg tidskodene som vi kan bruke til å utføre oppgaver med jevne mellomrom, avhengig av periodisiteten deres

  • 0 * * * * Ved å bruke tidskoden, vil skriptet bli utført hver time på timen.
  • 0 0 * * * Hver dag vil skriptet kun kjøres én gang
  • 0 0 * * 0 Skriptet kjøres en gang i uken
  • 0 0 1 * * Vil bli utført en gang i måneden
  • 0 0 1 1 * Skriptet vil bli utført en gang i året

Når vi er klare over hvordan oppgaveplanlegging fungerer i Crontab, er det første vi skal gjøre å lage filen der vi skal lage alle prosessene vi ønsker å automatisere ved å bruke følgende kommando

crontab nombre-archivo

Hvis vi ikke vil opprette en ny, eller vi allerede har opprettet den og ønsker å redigere den, bruker vi denne kommandoen

crontab -e

Hvis vi ønsker å slette Crontab-filen som er opprettet

crontab -d

Med følgende kommando kan vi liste alle oppgavene som er inkludert i Crontab-filen

crontab -d

Systemadministratorer kan begrense bruken av systemautomatisering ved å redigere filene cron.allow eller cron.den, filene funnet i /etc/cron.d/ eller /etc/ hvis vi ikke tidligere har endret plasseringen deres.

automatisere oppgaver

For å redigere Crontab-filen som vi har laget, skal vi bruke tekstredigereren som er inkludert i alle Linux-distribusjoner, selv om vi også kan redigere den direkte fra Crontab ved å legge til -e-variabelen.

nano nombrearchivo

Vi introduserer den numeriske koden ledsaget av stjerner og skriptet som vi ønsker å kjøre. Deretter må vi gi Cron tillatelse til å kjøre den, ellers vil den ikke vite om dens eksistens og vil aldri kunne kjøre den. For å gjøre dette bruker vi kommandoen

chmod ugo+x nombrearchivo

I utgangspunktet ser det ikke ut til å være lett å bruke Crontab til å automatisere oppgaver, og det minner om Linux sitt (nesten vanlige) behov for å ty til kommandolinjen for praktisk talt alt, og dermed begrense flere brukere fra å ta i bruk Linux som operativsystem på en dag- i dag. .

Windows-oppgaveplanleggeren bruker et grafisk grensesnitt som ikke er veldig enkelt å bruke uten nødvendig kunnskap, men det er mye mer intuitivt enn det som tilbys av Linux via kommandolinjen.

Crontab og Cron arbeidseksempel

Det første vi må gjøre for å automatisere oppgaver i Linux er å lage filen der vi skal inkludere alle kommandoene som vi ønsker skal utføres på datamaskinen på det tidspunktet vi konfigurerer. I dette eksemplet skal vi lage "test"-filen som vil være ansvarlig for å slette alle filene og tomme mappene som finnes i tmp-katalogen. For å gjøre det, vil vi skrive inn følgende kommando.

crontab prueba

Deretter må vi skrive inn kommandoen (eller kommandoer som skiller dem med semikolon ";" uten anførselstegn). I dette eksemplet skal vi bruke Crontab til å slette filene i tmp-mappen.

find /tmp -type f -empty -delete

Deretter redigerer vi filen for å legge til tidsplanen, det vil si når vi vil at oppgavene som vi har lagt inn i filen skal utføres.

crontab -e

For at det skal utføres hver dag klokken 10 om morgenen, må vi legge til 0 10 * * * før skriptet, og la linjen stå som følger

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

Hvis vi vil at den skal utføres på et annet tidspunkt, må vi bare endre tallet 10 for timen (i 24-timers format) som vi vil at den skal utføres. Vi kan også bruke tidskoder som vi har vist i delen Programmeringsadministrasjon for å konfigurere den. Til slutt bruker vi følgende kommando slik at Cron kan utføre automatiseringsfilen som vi har opprettet.

[code]chmod ugo+x prueba

Alternativer til Cron

Som vi har nevnt i tidligere seksjoner, er Cron ansvarlig for å utføre kommandoene som vi tidligere har lagt inn i Crontab. Cron er et perfekt verktøy for team som er i gang 24 timer i døgnet, selv om vi også kan tilpasse det til arbeidsplanen vår, selv om det tar ressurser fra teamet mens oppgavene utføres. Hvis vi ser etter enklere alternativer til Cron, så viser vi deg noen av de beste alternativene.

anakron

Anacron lar oss planlegge automatisert utførelse av oppgaver på en dag, uke eller måned, når som helst. Hvis datamaskinen er slått av, vil neste gang vi starter datamaskinen utføre oppgaven som vi tidligere har lagt inn i Crontab. Med Cron, hvis datamaskinen er slått av på den angitte datoen, vil ikke oppgaven bli utført når vi slår på datamaskinen. Anacron er tilgjengelig i de fleste Linux-distribusjoner, og vi kan installere det på datamaskinen gjennom følgende kommando.

sudo apt install anacron

Cronie

Cronie tilbyr oss en mye mer komplett opplevelse enn Cron, og et lite sett med applikasjoner (blant annet Anacron er inkludert) og som vi kan programmere arbeidsflyter med svært raskt og enkelt gjennom Crontab. I motsetning til Anacron, for å installere Cronie, er den ikke tilgjengelig i Linux-repositoriene, så vi må besøke nettsiden på GitHub for å laste den ned, eller bruk følgende kommando.

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