Cron Jobs Complete nybegynneropplæring

Cron Jobs Complete nybegynneropplæring
Cron er det mest nyttige verktøyet i et Linux- eller UNIX-lignende operativsystem som tillater å kjøre kommandoer eller skript på en gitt tidsplan uten noen brukerinngrep. De planlagte kommandoene og skriptene er også kalt Cron Jobs. Det brukes mest til å automatisere tilbakevendende jobber som å kjøre planlagte sikkerhetskopier, rengjøre midlertidige filer, systemvedlikehold og forskjellige andre tilbakevendende jobber. Det ligner på oppgaveplanleggeren i Windows OS.

I denne opplæringen vil vi gi deg den grunnleggende introduksjonen av alt du trenger å forstå for å planlegge en jobb med Cron. Dette inkluderer grunnleggende syntaks for Cron, redigering av crontab -fil, planlegg en jobb med Cron med få eksempler, se Cron Job, etc.

Grunnleggende om Cron Job

La oss forstå noen grunnleggende om en cronjobb.

Hva er Crond?

Crond er demonen i Linux -systemet som kjører i bakgrunnen og sjekker hvert minutt for å se om det er planlagt noen jobb på den tiden. Hvis det er, utfører den den jobben, ellers forblir den inaktiv.

Cron Job Syntax

Syntaksen for Cron Job er som følger:

* * * * * Kommando/skript

Fra venstre:

  • Den første * tilsvarer minutter (0-59)
  • Den andre * tilsvarer timer (0-23)
  • Den tredje * tilsvarer månedens dag (1-31)
  • Den fjerde * tilsvarer året av året (1-12)
  • Den femte * tilsvarer ukedagen (0-6, søndag til lørdag)

For å spesifisere flere verdier i et felt, bruk følgende operatørsymboler:

  1. Stjerne (*): For å spesifisere alle mulige verdier for et felt
  2. Bindestrek (-): Til sbeskytte en rekke verdier
  3. Komma (,): For å spesifisere en liste over verdier
  4. Separator (/): For å spesifisere en trinnverdi

Redigering av crontab -fil

Crontab er en fil som inneholder de planlagte jobbene i en bestemt syntaks. Det er to typer crontab -filer; den ene for systemspesifikke Cron-jobber og den andre for brukerspesifikke Cron-jobber.

System Cron Jobs

De systemomfattende Cron-jobbene er lokalisert i /etc/crontab fil og /etc/cron.d katalog, og de kjøres gjennom /etc/cron.hver time, /etc/cron.daglig, /etc/cron.ukentlig og /etc/cron.månedlig. Bare en systemadministrator kan få tilgang til disse filene.

En systemadministrator kan definere en Cron -jobb ved å bruke følgende kommando:

$ nano /etc /crontab

Her er syntaksen til jobben i /etc/crontab fil:

# Min HR DayOfmonth Month DayofWeek Brukernavn Kommando
* * * * * bruker1 ifconfig

Brukerspesifikke Cron-jobber

De brukerspesifikke Cron-jobbene er lokalisert i /var/spool/cron/crontabs katalog. Selv om du kan redigere disse jobbene manuelt, anbefales det å redigere disse jobbene ved å bruke CRONTAB -E -kommandoen.

En standard bruker kan definere en CRON -jobb ved å bruke følgende kommando:

$ crontab -e

For eksempel, hvis du er logget inn som en "test" -bruker, vil CRONTAB -E -kommandoen redigere CRONTAB -filen for "Test" -brukeren. Tilsvarende, hvis du er logget inn som rotbruker, vil crontab -e -kommandoen redigere crontab -filen for rotbrukeren.

Utsted kommandoen nedenfor i terminalen for å redigere CRONTAB -filen for enhver annen bruker:

$ sudo crontab -u -e

Hvis du for eksempel er logget inn som en "Test1" -bruker og ønsker å redigere CRONTAB -filen for "Test2" -brukeren, ville kommandoen være:

$ sudo crontab -u test2 -e

Her er syntaksen til Cron -jobben som kan legges til i crontab -filen:

# M H DayOfmonth Month DayofWeek Command
* * * * * ifconfig

Du kan se i brukerspesifikke jobber at det ikke er noen "brukernavn" arkivert.

Crontab -kommandoer

CRONTAB -kommandoen brukes til å redigere, liste og fjerne Cron -jobbene:

  • crontab -e For å redigere gjeldende brukers crontab -fil
  • crontab -l For å vise innholdet i crontab -filen
  • crontab -u [brukernavn] For å redigere enhver annen brukers crontab -fil
  • crontab -r For å fjerne crontab -filen til den nåværende brukerens
  • crontab -i For å vise en ledetekst før du fjerner den nåværende brukerens Crontab -fil

Planlegge en jobb med Cron

Med Cron kan du kjøre jobb på et bestemt tidspunkt, dato og intervaller med en minimumsenhet på få minutter, i.e., Du kan kjøre en jobb hvert minutt.

For å planlegge en jobb med Cron, åpner du Crontab -filen ved hjelp av metoden omtalt i forrige seksjon. Når du har åpnet crontab -filen, blir du bedt om å velge en tekstredigerer. Skriv inn et nummer for å velge din foretrukne tekstredigerer. Bla ned til bunnen av filen og legg til jobber i syntaks beskrevet ovenfor. Hver linje i en fil spesifiserer en kommando. De første fem oppføringene i linjen spesifiserer den planlagte tiden, og den siste oppføringen spesifiserer hvilken kommando eller skript som skal kjøres.

Eksempel:

Følgende linje i crontab-filen planlegger Cron-jobben for å kjøre kommandoen/skriptet hvert 30. minutt siste 5 timer på hver uke fra mandag til lørdag.

*/30 5 * * 1-6 Kommando/skript

Minutter

I dette feltet spesifiserer vi protokollen når vi ønsker at kommandoen skal utføres. Det er spesifisert fra 0 til 59. * I dette feltet betyr det å kjøre jobben hvert minutt. I ovennevnte crontab -linje forteller */30 Cron -jobben å kjøre den spesifiserte kommandoen/skriptet hvert 30. minutt.

Timer

I dette feltet spesifiserer vi timene når vi ønsker at kommandoen skal utføres. Det er spesifisert fra 0 til 23. * I dette feltet betyr det å kjøre jobben hver time. I ovennevnte crontab -linje forteller verdien 5 Cron -jobben å kjøre den spesifiserte kommandoen/skriptet hver femte time.

Dag i måneden

På dette feltet spesifiserer vi de bestemte dager på måneder når vi ønsker at kommandoen skal utføres. Det er spesifisert fra 1 til 31. * I dette feltet betyr hver dag. I ovennevnte crontab -linje forteller * Cron -jobben om å kjøre den spesifiserte kommandoen/skriptet hver dag.

Årets måned

På dette feltet spesifiserer vi de spesielle månedene når vi ønsker at kommandoen skal utføres. Det er spesifisert fra 1 til 12. * I dette feltet betyr hver måned. I crontab -linjen ovenfor, forteller * Cron -jobben om å kjøre den spesifiserte kommandoen/skriptet hver måned.

Ukedag

På dette feltet spesifiserer vi de bestemte dagene i uken når vi ønsker at kommandoen skal utføres. Det er spesifisert fra 0 til 6 fra søndag til lørdag (0 for søndag og 6 for lørdag). * I dette feltet betyr hver dag om en uke. I crontab -linjen ovenfor, forteller * Cron -jobben om å kjøre den spesifiserte kommandoen/skriptet hver dag på en uke.

Eksempler på Cron Jobs

Her er noen eksempler på Cron Jobs:

Kjør en Cron -jobb hvert 15. minutt

For å planlegge en Cron -jobb som skal kjøres hvert 15. minutt, legg til linjen nedenfor i crontab -filen:

*/15 * * * * Kommando/skript

Kjør en Cron -jobb klokka 05.00 hver dag

For å planlegge en Cron -jobb som skal kjøres klokka 05.00 hver dag, legg til linjen nedenfor i Crontab -filen:

0 5 * * * Kommando/skript

Kjør en Cron -jobb klokken 17.00 hver dag

For å planlegge en Cron -jobb som skal kjøres klokken 17.00 hver dag, kan du legge til linjen nedenfor i Crontab -filen:

0 17 * * * Kommando/skript

Kjør en Cron -jobb klokka 9 den første dagen i hver måned

For å planlegge en Cron -jobb som skal kjøres klokka 9 den første dagen i hver måned, kan du legge til linjen nedenfor i Crontab -filen:

0 9 1 * * Kommando/skript

Kjør en Cron -jobb hver time hver 15. mars

For å planlegge en Cron -jobb hver time hver 15. mars, legg til linjen nedenfor i Crontab -filen:

0 * 15 3 * Kommando/skript

Kjør en Cron -jobb hver 5. time

For å planlegge en Cron -jobb hver 5. time, legg til linjen nedenfor i crontab -filen:

0 */5 * * * Kommando/skript

Kjør en Cron -jobb hvert 15. minutt

For å planlegge en Cron -jobb som skal kjøres hvert 15. minutt, legg til linjen nedenfor i crontab -filen:

*/15 * * * *

Ved hjelp av strenger

Følgende strenger kan også brukes til å definere en jobb:

  1. @hver time: For å utføre en jobb en gang hver time, jeg.e., “0 * * * *
  2. @midnatt: For å utføre en jobb en gang hver dag, jeg.e., “0 0 * * *
  3. @daglig: Samme som midnatt
  4. @ukentlig: For å utføre en jobb en gang hver uke, jeg.e., “0 0 * * 0
  5. @månedlig: For å utføre en jobb en gang hver måned, jeg.e., “0 0 1 * *
  6. @årlig: For å utføre en jobb en gang hvert år, jeg.e., “0 0 1 1 *
  7. @årlig: Samme som @Annuelt
  8. @Reboot: Å utføre en jobb en gang ved hver oppstart

For å kjøre et skript eller kommando hver uke, vil oppføringen i Crontab -filen for eksempel være:

@Weekly Command/Script

Forhåndsdefinerte Cron -kataloger

Det er noen forhåndsdefinerte Cron-kataloger i Linux der de lagrede skriptene automatisk utføres. Hvis vi plasserer noe skript under disse katalogene, blir det automatisk utført på den konfigurerte tiden.

  • /etc/cron.daglig
  • /etc/cron.hver time
  • /etc/cron.månedlig
  • /etc/cron.ukentlig

For å utføre et skript en gang hver måned, må du for eksempel plassere det i /etc /cron.månedlig.

Se Cron Jobs

Se jobber for den nåværende brukeren

Bruk følgende kommando for å se alle de planlagte Cron -jobbene for den nåværende brukeren:

$ crontab -l

Se jobber for root -brukerne

For å se alle de planlagte jobbene til rotbrukeren, utstedt følgende kommando i terminalen:

$ katt /etc /crontab

Du må logge inn som rotbruker eller kjøre kommandoen som sudo.

Se jobber for de andre brukerne

For å se alle de planlagte jobbene til en bestemt bruker, kan du utstede følgende kommando i terminalen erstatte med det faktiske brukernavnet:

$ sudo crontab -u -l

For å kjøre denne kommandoen, trenger du sudo -privilegier.

Se timekronjobber

For å se alle Cron -jobbene som er konfigurert til å kjøre hver time, kan du utstede følgende kommando i terminalen:

$ ls -la /etc /cron.hver time

Se daglige Cron -jobber

For å se alle Cron -jobbene som er konfigurert til å kjøre daglig, kan du utstede følgende kommando i terminalen:

$ ls -la /etc /cron.daglig/

Se ukentlige Cron Jobs

For å se alle Cron -jobbene som er konfigurert til å kjøre ukentlig, kan du utstede følgende kommando i terminalen:

$ ls -la /etc /cron.ukentlig/

Se månedlige Cron -jobber

For å se alle Cron -jobbene som er konfigurert til å kjøre månedlig, kan du utstede følgende kommando i terminalen:

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

Sikkerhetskopier alle Cron Jobs

Det anbefales å oppbevare en sikkerhetskopi av alle Cron -jobbene i en fil, slik at du kan gjenopprette i tilfelle sletting. For å lage en sikkerhetskopi av alle gjeldende jobber, bruk omdirigeringsoperatøren for å omdirigere utdataene fra Crontab -L til en fil.

$ crontab --l> backup_cron.tekst

Fjerne alle planlagte Cron -jobber

For å fjerne alle planlagte Cron -jobber, bruk -R -flagget som følger:

$ crontab -r

Cron tillatelse

Vi kan begrense tilgangen til crontab -kommandoen gjennom to filer: / etc/cron.Tillat og / etc / cron.benekte.

  • /etc/cron.tillate - Legg til brukere (en per linje) som du vil tillate tilgang til crontab -kommandoer. Disse brukerne kan kjøre planjobber.
  • /etc/cron.benekte - Legg til brukere (en per linje) som du vil nekte tilgang til crontab -kommandoer. Disse brukerne kan ikke kjøre planlagte jobber.

Crontab syntaksgeneratorer

Det er noen nettsteder som tillater å generere syntaks for crontabs. Disse nettstedene gjør det lettere å generere crontab -uttrykk uten å måtte huske syntaks. Selv om det er forskjellige nettsteder tilgjengelig for syntaksgeneratorer som crontabgenerator.com, crontab-generator.org, og cronmaker.com. Den som jeg stort sett foretrekker og syntes nyttig er crontab.Guru. Basert på brukerinngang genererer det et crontab-uttrykk som du kan kopiere late i crontab-filen.

Konklusjon

I denne opplæringen har vi forklart det grunnleggende om Cron -jobber, syntaks og hvordan du setter det opp. Vi har også diskutert hvordan vi kan se på Cron -jobber, lage en sikkerhetskopi og fjerne dem hvis det ikke lenger er nødvendig.