crontab

Cron Jobs Komplet begyndervejledning

Cron Jobs Komplet begyndervejledning
Cron er det mest nyttige værktøj i et Linux- eller UNIX-lignende operativsystem, der tillader at køre kommandoer eller scripts på en given tidsplan uden brugerintervention. De planlagte kommandoer og scripts navngives også som cron-job. Det bruges mest til automatisering af tilbagevendende job som at køre planlagte sikkerhedskopier, rengøring af midlertidige filer, systemvedligeholdelse og forskellige andre tilbagevendende job. Det svarer til Task Scheduler i Windows OS.

I denne vejledning giver vi dig den grundlæggende introduktion af alt, hvad du har brug for at forstå for at planlægge et job med cron. Dette inkluderer grundlæggende syntaks for cron, redigering af crontab-fil, planlægning af et job med cron med få eksempler, se cron-job osv.

Grundlæggende om Cron Job

Lad os forstå nogle grundlæggende i et cron-job.

Hvad er Crond?

Crond er dæmonen i Linux-systemet, der kører i baggrunden og kontrollerer hvert minut for at se, om der er planlagt noget job på det tidspunkt. Hvis der er det, udfører det jobbet, ellers forbliver det inaktivt.

Cron Job-syntaks

Syntaksen for cron-job er som følger:

* * * * * kommando / script

Fra venstre:

For at specificere flere værdier i et felt skal du bruge følgende operatørsymboler:

  1. Asterisk (*): For at specificere alle mulige værdier for et felt
  2. Dash (-): Til sangiv en række værdier
  3. Kommaet (,): For at specificere en liste over værdier
  4. Separator (/): For at specificere en trinværdi

Redigering af Crontab-fil

Crontab er en fil, der indeholder de planlagte job i en bestemt syntaks. Der er to typer crontab-filer; en til systemspecifikke cron-job og den anden til brugerspecifikke cron-job.

System cron job

De systemomfattende cron-job er placeret i / etc / crontab fil og / etc / cron.d katalog, og de køres igennem / etc / cron.hver time, / etc / cron.daglige, / etc / cron.ugentlig og / etc / cron.månedlige. Kun en systemadministrator kan få adgang til disse filer.

En systemadministrator kan definere et cron-job ved hjælp af følgende kommando:

$ nano / etc / crontab

Her er syntaksen for jobbet i / etc / crontab fil:

# min hr dag den månedlige måned dag af ugen brugernavn kommando
* * * * * bruger1 ifconfig

Brugerspecifikke cron-job

De brugerspecifikke cron-job findes i /var / spole / cron / crontabs vejviser. Selvom du kan redigere disse job manuelt, anbefales det at redigere disse job ved hjælp af kommandoen crontab -e.

En standardbruger kan definere et cron-job ved hjælp af følgende kommando:

$ crontab -e

For eksempel, hvis du er logget ind som en "test" -bruger, kører crontab -e kommandoen vil redigere crontab-filen for "test" brugeren. Tilsvarende, hvis du er logget ind som en rootbruger, vil crontab -e-kommandoen redigere crontab-filen for root-brugeren.

Udsted kommandoen nedenfor i Terminal for at redigere crontab-filen til enhver anden bruger:

$ sudo crontab -u -e

For eksempel, hvis du er logget ind som en “test1” -bruger og vil redigere crontab-filen for “test2” -brugeren, vil kommandoen være:

$ sudo crontab -u test2 -e

Her er syntaksen for cron-job, der kan tilføjes i crontab-filen:

# m h dag i måned måned kommando
* * * * * ifconfig

Du kan se i brugerspecifikke job, at der ikke er gemt noget "brugernavn".

Crontab-kommandoer

Crontab-kommandoen bruges til at redigere, liste og fjerne cron-job:

  • crontab -e For at redigere den aktuelle brugers crontab-fil
  • crontab -l For at få vist indholdet af crontab-filen
  • crontab -u [brugernavn] For at redigere en anden brugers crontab-fil
  • crontab -r For at fjerne crontab-filen for den aktuelle bruger
  • crontab -i For at få vist en meddelelse, før du fjerner den aktuelle brugers crontab-fil

Planlægning af et job med Cron

Med Cron kan du køre et job på et bestemt tidspunkt, en dato og intervaller med en minimumsenhed i minutter, dvs.e., du kan køre et job hvert minut.

For at planlægge et job med cron skal du åbne crontab-filen ved hjælp af metoden beskrevet i det foregående afsnit. Når du har åbnet crontab-filen, bliver du bedt om at vælge en teksteditor. Indtast et nummer for at vælge din foretrukne teksteditor. Rul ned til bunden af ​​filen, og tilføj job i den ovenfor beskrevne syntaks. Hver linje i en fil angiver en kommando. De første fem poster på linjen angiver det planlagte tidspunkt, og den sidste post angiver, hvilken kommando eller script, der skal køre.

Eksempel:

Den følgende linje i crontab-filen planlægger cron-jobbet til at køre kommandoen / scriptet hvert 30. minut over de 5 timer hver ugedag fra mandag til lørdag.

* / 30 5 * * 1-6 kommando / script

Protokoller

I dette felt specificerer vi de minutter, hvor vi ønsker, at kommandoen skal udføres. Det er specificeret fra 0 til 59. * I dette felt betyder at køre jobbet hvert minut. I ovenstående crontab-linje fortæller * / 30 cron-jobbet at køre den angivne kommando / script hvert 30. minut.

Timer

I dette felt angiver vi de timer, hvor vi ønsker, at kommandoen skal udføres. Det er specificeret fra 0 til 23. * I dette felt betyder at køre jobbet hver time. I ovenstående crontab-linje fortæller værdien 5 cron-jobbet at køre den angivne kommando / script hver femte time.

Månedens dag

I dette felt angiver vi de bestemte dage i måneder, hvor vi ønsker, at kommandoen skal udføres. Det er specificeret fra 1 til 31. * I dette felt betyder hver dag. I ovenstående crontab-linje fortæller * cron-jobbet at køre den angivne kommando / script hver dag.

Årets måned

I dette felt specificerer vi de bestemte måneder, hvor vi ønsker, at kommandoen skal udføres. Det er specificeret fra 1 til 12. * I dette felt betyder hver måned. I ovenstående crontab-linje fortæller * cron-jobbet at køre den angivne kommando / script hver måned.

Ugedag

I dette felt angiver vi de bestemte ugedage, hvor vi ønsker, at kommandoen skal udføres. Det er specificeret fra 0 til 6 fra søndag til lørdag (0 for søndag og 6 for lørdag). * I dette felt betyder hver dag i en uge. I ovenstående crontab-linje fortæller * cron-jobbet at køre den angivne kommando / script hver dag i en uge.

Eksempler på Cron Jobs

Her er et par eksempler på cron-job:

Kør et cron-job hvert 15. minut

For at planlægge et cron-job, der skal køre hvert 15. minut, skal du tilføje nedenstående linje i crontab-filen:

* / 15 * * * * kommando / script

Kør et cron-job kl. 5 hver dag

For at planlægge, at et cron-job kører kl. 5 hver dag, skal du tilføje nedenstående linje i crontab-filen:

0 5 * * * kommando / script

Kør et cron-job kl. 17 hver dag

For at planlægge et cron-job, der skal køre kl. 17 hver dag, skal du tilføje nedenstående linje i crontab-filen:

0 17 * * * kommando / script

Kør et cron-job kl. 9 den første dag i hver måned

For at planlægge et cron-job, der skal køre kl. 9 den første dag i hver måned, skal du tilføje nedenstående linje i crontab-filen:

0 9 1 * * kommando / script

Kør et cron-job hver time hver 15. marts

For at planlægge et cron-job hver time hver 15. marts skal du tilføje nedenstående linje i crontab-filen:

0 * 15 3 * kommando / script

Kør et cron-job hver 5. time

For at planlægge et cron-job hver 5. time skal du tilføje nedenstående linje i crontab-filen:

0 * / 5 * * * kommando / script

Kør et cron-job hvert 15. minut

For at planlægge et cron-job, der skal køre hvert 15. minut, skal du tilføje nedenstående linje i crontab-filen:

* / 15 * * * *

Brug af strenge

Følgende strenge kan også bruges til at definere et job:

  1. @hver time: For at udføre et job en gang i timen, dvs.e., “0 * * * *
  2. @midnat: At udføre et job en gang dagligt, i.e., “0 0 * * *
  3. @daglige: det samme som midnat
  4. @ugentlig: At udføre et job en gang hver uge, i.e., “0 0 * * 0
  5. @månedlige: For at udføre et job en gang hver måned, i.e., “0 0 1 * *
  6. @årligt: At udføre et job en gang hvert år, i.e., “0 0 1 1 *
  7. @årligt: det samme som @ årligt
  8. @reboot: At udføre et job en gang ved hver opstart

For eksempel for at køre et script eller en kommando hver uge, ville posten i crontab-filen være:

@ ugentlig kommando / script

Foruddefinerede Cron Directories

Der er nogle foruddefinerede cron-mapper i Linux, hvor de lagrede scripts automatisk udføres. Hvis vi placerer et script under disse mapper, udføres det automatisk på det konfigurerede tidspunkt.

  • / etc / cron.daglige
  • / etc / cron.hver time
  • / etc / cron.månedlige
  • / etc / cron.ugentlig

For eksempel, for at udføre et script en gang hver måned, skal du placere det i / etc / cron.månedlige.

Se Cron Jobs

Se job for den aktuelle bruger

Brug følgende kommando til at se alle de planlagte cron-job for den aktuelle bruger:

$ crontab -l

Se job til rodbrugerne

For at se alle planlagte job hos rodbrugeren skal du udstede følgende kommando i Terminal:

$ kat / etc / crontab

Du skal være logget ind som en rootbruger eller køre kommandoen som sudo.

Se job for de andre brugere

For at se alle de planlagte job for en bestemt bruger skal du udstede følgende kommando i Terminal og erstatte med det faktiske brugernavn:

$ sudo crontab -u -l

For at køre denne kommando skal du bruge sudo-privilegier.

Se cron-job hver time

For at se alle cron-job, der er konfigureret til at køre hver time, skal du udstede følgende kommando i Terminal:

$ ls -la / etc / cron.hver time

Se daglige cron-job

For at se alle cron-job, der er konfigureret til at køre dagligt, skal du udstede følgende kommando i Terminal:

$ ls -la / etc / cron.daglige/

Se ugentlige cron-job

For at se alle cron-job, der er konfigureret til at køre ugentligt, skal du udstede følgende kommando i Terminal:

$ ls -la / etc / cron.ugentlig/

Se månedlige cron-job

For at se alle cron-job, der er konfigureret til at køre månedligt, skal du udstede følgende kommando i Terminal:

$ ls -la / etc / cron.månedlige/

Sikkerhedskopier alle Cron-job

Det anbefales at gemme en sikkerhedskopi af alle cron-job i en fil, så du kan gendanne i tilfælde af sletning. For at lave en sikkerhedskopi af alle aktuelle job skal du bruge omdirigeringsoperatøren til at omdirigere output fra crontab -l til en fil.

$ crontab -l> backup_cron.txt

Fjernelse af alle planlagte Cron-job

For at fjerne alle planlagte cron-job skal du bruge flaget -r som følger:

$ crontab -r

Cron Tilladelse

Vi kan begrænse adgangen til crontab-kommando gennem to filer: / etc / cron.tillad og / etc / cron.nægte.

  • / etc / cron.give lov til - Tilføj brugere (en pr. Linje), som du vil give adgang til crontab-kommandoer. Disse brugere kan køre planlagte job.
  • / etc / cron.nægte - Tilføj brugere (en pr. Linje), som du vil nægte adgang til crontab-kommandoer. Disse brugere kan ikke køre planlagte job.

Crontab syntaksgeneratorer

Der er nogle websteder, der tillader generering af syntaks til crontabs. Disse websteder gør det lettere at generere crontab-udtryk uden at skulle huske syntaksen. Selvom der findes forskellige websteder til syntaksgeneratorer som crontabgenerator.com, crontab-generator.org og cronmaker.com. Den, som jeg mest foretrækker og fandt nyttig, er crontab.guru. Baseret på brugerinput genererer det et crontab-udtryk, som du kan kopiere og indsætte i crontab-filen.

Konklusion

I denne vejledning har vi forklaret det grundlæggende i cron-job, dets syntaks og hvordan man konfigurerer det. Vi har også diskuteret, hvordan man ser cron-job, opretter en sikkerhedskopi og fjerner dem, hvis det ikke længere er nødvendigt.

Mus Midterste museknap fungerer ikke i Windows 10
Midterste museknap fungerer ikke i Windows 10
Det midterste museknap hjælper dig med at rulle gennem lange websider og skærme med en masse data. Hvis det stopper, vil du ende med at bruge tastatur...
Mus Sådan ændres venstre og højre museknap på Windows 10-pc
Sådan ændres venstre og højre museknap på Windows 10-pc
Det er en ganske normal, at alle computermusenheder er ergonomisk designet til højrehåndede brugere. Men der er musenheder til rådighed, der er specie...
Mus Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Efterlig museklik ved at svæve ved hjælp af Clickless Mouse i Windows 10
Brug af en mus eller et tastatur i den forkerte kropsholdning af overdreven brug kan resultere i mange sundhedsmæssige problemer, herunder stamme, kar...