Lær Linux

Hvordan lage Cron Jobs på Linux

Hvordan lage Cron Jobs på Linux

En Cron- eller Cron-jobb er en tidsbasert planlegger som er vanlig i Linux / Unix-systemer. Den planlegger spesifikke brukeroppgaver for å kjøre med jevne mellomrom i fast dato, klokkeslett eller intervaller. De fleste av disse oppgavene er skript for å utføre funksjoner som sikkerhetskopier og mer. For å opprette disse cron-jobbene bruker vi crontab-kommandoene. En crontab er et UNIX-kommando / verktøy som brukes til å opprette og administrere cron-jobber.

Som du vil se nedenfor, er det ganske enkelt å lage og redigere en cron-jobb. Den mest fantastiske delen er at du ikke trenger å starte cron eller PCen din på nytt etter å ha opprettet eller redigert en cron-jobb. Bare lagre filen, så er du klar.

Vanlige bruksområder for Cron Jobs

Grunnleggende deler av en cron-kommando

Standard syntaksen for crontab er som nedenfor:

a b c d e USERNAME / path / to / script output

1.Tid og dato sammen med hvor repeterende jobben blir spesifisert av de fem feltene:

Merk: Dagene starter med mandag. 0 og 7 representerer søndag

2. BRUKERNAVN: Husk å erstatte dette med brukernavnet ditt

3. Den spesifikke plasseringen og skriptet som skal utføres av cron er spesifisert av det tredje segmentet:

/ sti / til / skript

4. Den siste delen definerer varselet til brukeren etter fullført jobb som en måte å holde oversikt over oppgaver:

produksjon

Innboksen din kan imidlertid være full av mindre oppgaver som ofte kanaliseres. For å unngå dette kan du deaktivere den automatiske e-postutgangen ved å legge til strengen nedenfor i cron-kommandoen:

> / dev / null 2> & 1 e.g a b c d e USERNAME / path / to / script> / dev / null 2> & 1

I tillegg bruker cron fire verdier til som brukes til å spesifisere flere verdier i et felt. De er:

Sette opp cron-jobbene

Crontab-kommandoene er ansvarlige for å opprette og redigere cron-jobber fordi cron-filene ikke skal redigeres direkte. Crontab definerer hvordan du kan opprette, redigere, liste, feilsøke, installere og avinstallere cron-oppgavene.

Før du begynner med cron-jobber, er det viktig å sikre at Linux Desktop eller Server er oppdatert ved å utføre kommandoene nedenfor:

sudo apt oppdatering sudo apt oppgradering

Hvis du ikke har cron-pakken installert på systemet ditt, installerer du det med kommandoen nedenfor:

sudo apt-get install cron

Installer cron

Hvordan redigere crontab-filen?

For å fullføre prosessen, må du konfigurere cron-jobben. Brukeren som er logget inn når en cron-jobb opprettes, blir automatisk eieren. Det kan endres ved å opprette en jobbeier som vil være ansvarlig for å administrere cron-jobben, som vi vil se i dette innlegget.

For å åpne crontab-konfigurasjonsfilen for brukeren som er pålogget, utfør kommandoen nedenfor:

crontab -e

Du vil bli bedt av systemet om å velge en passende redaktør. I vårt tilfelle vil vi velge det første alternativet (nano editor).

crontab -e

Du kan legge til en planlagt oppgave per linje i henhold til dine preferanser.

crontab-fil

Når du har lagt til oppgavene, avslutt med å lagre filen og avslutte. Alle instruksjonene som blir gitt vil bli lest og utført av cron-demonen. Endringene vil bli brukt selv uten å starte systemet på nytt, da depotet oppdateres automatisk.

Rediger crontab for en annen bruker

Crontab kan redigeres for forskjellige brukere ved hjelp av en kommando i syntaksen nedenfor:

crontab -u annet_brukernavn -e

Hvordan bruke spesialtegn i crontab-kommandoer

Tegn og operatører dikterer mer tilpasning av systemet ditt ettersom de utvider mulighetene til en cron-oppgave.

0 6 * * 1-5 / root / backup.sh

Her står 06 for 6 am 1-5 står for antall dager (mandag til fredag).

35 1-23 / 2 * * * / sti / til / skript / skript.sh

1-23 angir antall timer, / 2 stiller intervallet til annenhver time.

Cron Options

Det kan være lurt å liste opp cron-jobbene i systemet ditt uten å låse opp crontab-konfigurasjonsfilen. Dette kan gjøres ved å starte terminalen og skrive kommandoen nedenfor:

crontab -l

liste opp cron jobber

Den kommandoen viser alle cron-jobbene som finnes i systemet ditt.

For å slette alle crontab-kommandoer, kan du bruke kommandoen nedenfor:

crontab -r
crontab -r -u annet-brukernavn

Bruk strenger i Crontab

Strenger er uhyre nyttige verktøy for utviklere, da de unngår repeterende skriving av kodesegmenter. Heldigvis støtter crontabs forskjellige strengverdier. De inkluderer:

@hver time: -samme som - “0 * * * *” (Utfører en gang hver time)
@midnatt:  -samme som - “0 0 * * *“ (Utføres hver gang dag)
@daglig: samme som midnatt
@ukentlig:  -samme som - “0 0 * * 0“ (Utføres hver gang uke)
@månedlig: -samme som - “0 0 1 * *” (Utfører en gang hver måned)
@årlig: -samme som - “0 0 1 1 *“ (Utføres en gang hver år)
@årlig: ligner på @ årlig
@reboot: Utført en gang etter hver omstart / omstart / oppstart.

Et godt eksempel; Hvis du har et backup-skript som du vil kjøre hver dag, bruk kommandoen nedenfor:

@daily / path / to / backup_script.sh

Eksempler på cron-jobber

Her er en liste over grunnleggende cron-jobber som kan brukes når du kommer i gang:

    1. Slik kjører du et skript hvert minutt:
      * * * * * / din / skript / bane.sh
    2. Slik kjører du et skript hvert 40. minutt:
      40 * * * * / din / skript / bane.sh
    3. Slik kjører du et skript hver time:
      0 * * * * / din / skript / bane.sh
    4. Slik kjører du et skript hver midnatt:
      0 0 * * * / din / skript / bane.sh
    5. Å kjøre et skript hvert 23. minutt etter midnatt, to og fire hver dag:
      23 0-23 / 2 * * * / din / skript / bane.sh
    6. Å kjøre et skript klokka 4.05 hver søndag.
      5 4 * * sol / din / skript / bane.sh
    7. Å kjøre et skript klokka 22.00 i løpet av uken.
      0 22 * ​​* 1-5 / din / skript / bane.sh
    8. Å kjøre et manus 1. desember - Midnatt.
      0 0 0 12 * / din / skript / bane.sh
    9. Å kjøre et manus lørdag ved midnatt.
      0 0 * * 6 / din / skript / bane.sh
    10. Å kjøre et skript hver time.
      0 * * * * / din / skript / bane.sh

Med disse grunnleggende eksemplene vil du få en dypere forståelse av sekvensen og hvordan den kan modifiseres.

Begrensning av Cron-tilgang

Vi ser at cron-jobber kan være ganske nyttige, spesielt når du vil automatisere oppgavene dine. Det kan imidlertid også være risikabelt hvis systemet tillater enhver bruker å lage en cron-jobb. Selv om det ikke påvirker personlige data, kan noen cron-jobber ta ganske mye systemressurser, og dermed forsinke PCen. For å unngå slike scenarier kan systemadministratoren (rotbrukeren) opprette en / etc / cron.tillate  eller / etc / cron.benekte filen som bare inneholder brukere som kan 'skape / ikke-skape' en cron-jobb.

De / etc / cron.tillate filen inneholder brukere som kan opprette, redigere, vise eller fjerne crontab-filer. Hvis denne filen ikke eksisterer, kan alle brukere opprette og administrere andre cron-jobber enn de i / etc / cron.benekte fil. Hvis ingen av disse filene er til stede, kreves det superbrukerrettigheter for å kjøre crontab-kommandoen.

cron tillate fil

Nå som du har forhindret ikke-root-brukere fra å opprette cron-jobber hvis de allerede hadde noen, kan du vurdere å legge til cron-jobber i root crontab-filen. Men her er et puslespill - Ved å legge til sine cron-jobber i root crontab, kjører ikke cron-jobbene deres som root? Vel, her kommer viktigheten av USERNAME-feltet vi diskuterte ovenfor i cron-kommandosyntaks. For eksempel kommandoen nedenfor:

0 * * * * fosslinux / path / to / script.sh

Vil kjøre som bruker “fosslinux” cron-jobb og ikke som rotbruker.

Konklusjon

Du har nå en klar guide om bruk av Cron-jobber for å automatisere ulike oppgaver på systemet ditt. Det burde ikke forvirre deg med oppstartsprogrammer. Bruk eksemplene ovenfor for å prøve å automatisere enkle skript. Med tiden kan du kombinere spesialtegn og jokertegn for å utføre mye mer verdslige oppgaver. Hvis du akkurat har begynt, ville det være flott å lese innlegget vårt på bash scripting tutorial med eksempler som vil hjelpe deg med å lage ditt første script.

Åpne kildeporter for kommersielle spillmotorer
Gratis, åpen kildekode og plattformspillmotorrekreasjoner kan brukes til å spille gamle så vel som noen av de ganske nylige spilletitlene. Denne artik...
Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...
Beste Gamepad Mapping Apps for Linux
Hvis du liker å spille spill på Linux med en gamepad i stedet for et vanlig tastatur- og musinngangssystem, er det noen nyttige apper for deg. Mange P...