crontab

Cron Jobs Komplett begynnerveiledning

Cron Jobs Komplett begynnerveiledning
Cron er det mest nyttige verktøyet i et Linux- eller UNIX-lignende operativsystem som gjør det mulig å kjøre kommandoer eller skript på en gitt tidsplan uten brukerinnblanding. De planlagte kommandoene og skriptene blir også kalt cron-jobber. Den brukes hovedsakelig til å automatisere gjentatte jobber som å kjøre planlagte sikkerhetskopier, rengjøring av midlertidige filer, systemvedlikehold og forskjellige andre gjentatte jobber. Det ligner på Task Scheduler 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, planlegge en jobb med cron med noen få eksempler, se cron-jobb osv.

Grunnleggende om Cron Job

La oss forstå noen grunnleggende om en cron-jobb.

Hva er Crond?

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

Cron Job Syntax

Syntaksen for cron-jobb er som følger:

* * * * * kommando / skript

Fra venstre:

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

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

Redigerer Crontab-fil

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

System cron jobber

De systemomfattende cron-jobbene ligger 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 har tilgang til disse filene.

En systemadministrator kan definere en cron-jobb ved hjelp av følgende kommando:

$ nano / etc / crontab

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

# min hr dag den første måneden kommandoen for uken brukernavn
* * * * * bruker1 ifconfig

Brukerspesifikke cron-jobber

De brukerspesifikke cron-jobbene ligger i /var / spole / cron / crontabs katalog. Selv om du kan redigere disse jobbene manuelt, anbefales det å redigere disse jobbene ved hjelp av kommandoen crontab -e.

En standardbruker kan definere en cron-jobb ved hjelp av følgende kommando:

$ crontab -e

Hvis du for eksempel er logget på som en "test" -bruker, vil du kjøre crontab -e-kommandoen redigere crontab-filen for "test" -brukeren. På samme måte, hvis du er logget på som rotbruker, vil crontab -e-kommandoen redigere crontab-filen for rotbrukeren.

Gi kommandoen nedenfor i Terminal for å redigere crontab-filen for alle andre brukere:

$ sudo crontab -u -e

For eksempel, hvis du er logget på som en “test1” -bruker og vil redigere crontab-filen for “test2” -brukeren, vil kommandoen være:

$ sudo crontab -u test2 -e

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

# m h dag i måneden
* * * * * ifconfig

Du kan se i brukerspesifikke jobber at det ikke er arkivert noe “brukernavn”.

Crontab-kommandoer

Crontab-kommandoen brukes til å redigere, liste opp og fjerne cron-jobbene:

  • crontab -e For å redigere den gjeldende brukerens crontab-fil
  • crontab -l For å vise innholdet i crontab-filen
  • crontab -u [brukernavn] For å redigere andre brukeres crontab-fil
  • crontab -r For å fjerne crontab-filen til den nåværende brukeren
  • crontab -i Å vise en melding før du fjerner brukerens crontab-fil

Planlegge en jobb med Cron

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

For å planlegge en jobb med cron, åpne crontab-filen ved hjelp av metoden som ble diskutert i forrige avsnitt. Når du har åpnet crontab-filen, blir du bedt om å velge en tekstredigerer. Skriv inn et tall for å velge ønsket teksteditor. Bla ned til bunnen av filen og legg til jobber i syntaksen beskrevet ovenfor. Hver linje i en fil angir en kommando. De første fem oppføringene på linjen spesifiserer planlagt tid, og den siste oppføringen angir hvilken kommando eller skript som skal kjøres.

Eksempel:

Følgende linje i crontab-filen vil planlegge cron-jobben for å kjøre kommandoen / skriptet hvert 30. minutt siste 5 timer hver ukedag fra mandag til lørdag.

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

Minutter

I dette feltet spesifiserer vi minuttene når vi vil at kommandoen skal utføres. Den er spesifisert fra 0 til 59. * I dette feltet betyr å kjøre jobben hvert minutt. I den ovennevnte crontab-linjen forteller * / 30 cron-jobben å kjøre den angitte kommandoen / skriptet hvert 30. minutt.

Timer

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

Månedens dag

I dette feltet spesifiserer vi bestemte dager i måneder når vi vil at kommandoen skal utføres. Det er spesifisert fra 1 til 31. * I dette feltet betyr hver dag. I den ovennevnte crontab-linjen forteller * cron-jobben å kjøre den angitte kommandoen / skriptet hver dag.

Årets måned

I dette feltet spesifiserer vi månedene vi vil at kommandoen skal utføres. Den er spesifisert fra 1 til 12. * I dette feltet betyr hver måned. I den ovennevnte crontab-linjen forteller * cron-jobben å kjøre den angitte kommandoen / skriptet hver måned.

Ukedag

I dette feltet spesifiserer vi de spesielle ukedagene når vi vil 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 i en uke. I den ovennevnte crontab-linjen forteller * cron-jobben å kjøre den angitte kommandoen / skriptet hver dag i løpet av en uke.

Eksempler på Cron Jobs

Her er noen eksempler på cron-jobber:

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 5 hver dag

For å planlegge at en cron-jobb skal kjøre klokka 5 hver dag, legg til linjen nedenfor i crontab-filen:

0 5 * * * kommando / skript

Kjør en cron-jobb klokka 17 hver dag

For å planlegge at en cron-jobb skal kjøre klokka 17 hver dag, legg 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 at en cron-jobb skal kjøre klokka 9 den første dagen i hver måned, legg 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 * * * *

Bruke strenger

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

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

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

@ ukentlig kommando / skript

Forhåndsdefinerte Cron-kataloger

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

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

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

Se Cron Jobs

Vis jobber for den nåværende brukeren

Bruk følgende kommando for å vise alle planlagte cron-jobber for den nåværende brukeren:

$ crontab -l

Vis jobber for rotbrukerne

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

$ katt / etc / crontab

Du må være pålogget som rotbruker eller kjøre kommandoen som sudo.

Vis jobber for de andre brukerne

For å se alle de planlagte jobbene til en spesifikk bruker, send følgende kommando i Terminal og erstatt med det faktiske brukernavnet:

$ sudo crontab -u -l

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

Vis cron-jobber hver time

For å se alle cron-jobbene som er konfigurert til å kjøre hver time, kan du utføre følgende kommando i Terminal:

$ ls -la / etc / cron.hver time

Se daglige cron-jobber

For å se alle cron-jobbene som er konfigurert til å kjøre daglig, utsteder du følgende kommando i Terminal:

$ ls -la / etc / cron.daglig/

Vis ukentlige cron-jobber

For å se alle cron-jobbene som er konfigurert til å kjøres ukentlig, utsteder du følgende kommando i Terminal:

$ ls -la / etc / cron.ukentlig/

Vis månedlige cron-jobber

For å se alle cron-jobbene som er konfigurert til å kjøre månedlig, kan du utføre følgende kommando i Terminal:

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

Sikkerhetskopier alle Cron-jobber

Det anbefales å ta en sikkerhetskopi av alle cron-jobbene i en fil, slik at du kan gjenopprette i tilfelle sletting. For å ta en sikkerhetskopi av alle gjeldende jobber, bruk viderekoblingsoperatøren til å omdirigere utgangen fra crontab -l til en fil.

$ crontab -l> backup_cron.tekst

Fjerner 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 gi tilgang til crontab-kommandoer. Disse brukerne kan kjøre planleggingsjobber.
  • / 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 generering av syntaks for crontabs. Disse nettstedene gjør det lettere å generere crontab-uttrykk uten å måtte huske syntaksen. Selv om det er forskjellige nettsteder tilgjengelig for syntaksgeneratorer som crontabgenerator.com, crontab-generator.org, og cronmaker.com. Den som jeg mest foretrekker og synes er nyttig er crontab.guru. Basert på brukerinngang genererer det et crontab-uttrykk som du kan kopiere og lime inn i crontab-filen.

Konklusjon

I denne veiledningen har vi forklart det grunnleggende om cron-jobber, syntaksen og hvordan du konfigurerer den. Vi har også diskutert hvordan vi kan se cron-jobber, lage en sikkerhetskopi og fjerne dem hvis det ikke lenger er behov for det.

Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...
Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...
Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...