logo

'crontab' i Linux med eksempler

De crontab er en liste over kommandoer du vil kjøre på en vanlig tidsplan, og også navnet på kommandoen som brukes til å administrere den listen. Crontab står for cron table, fordi den bruker jobbplanleggeren cron til å utføre oppgaver; cron seg selv er oppkalt etter chronos, det greske ordet for tid. cron er systemprosessen som automatisk utfører oppgaver for deg i henhold til en fastsatt tidsplan. Tidsplanen kalles crontab, som også er navnet på programmet som brukes til å redigere den tidsplanen.

Linux Crontab-syntaks

Linux Crontab-formatet er representert med følgende syntaks:



MIN HOUR DOM MON DOW   CMD>

La oss bryte ned hvert felt:

Felt

Beskrivelse



Tillatt verdi

MIN (minutt)

Angir minuttet når kommandoen skal kjøres



Det varierer fra 0 til 59.

TIME

Angir timen på dagen når kommandoen er planlagt å utføres.

Det spenner fra 0 til 23.

DOM (dag i måneden)

Angir dagen i måneden for oppgaven.

Det varierer fra 1 til 31.

MAN (måned)

Indikerer måneden kommandoen skal utføres i.

Det varierer fra 1 til 12.

DOW (ukedag)

Angir ukedagen for oppgaven.

Det er representert med tall fra 0 til 6, hvor både 0 og 6 tilsvarer søndag.

CMD (kommando)

Representerer den faktiske kommandoen eller skriptet som kjøres til det planlagte tidspunktet.

—————–

Eksempler på Cron-jobber

1. Planlegge en jobb for et bestemt tidspunkt

Den grunnleggende bruken av cron er å utføre en jobb på en bestemt tid som vist nedenfor. Dette vil kjøre full backup shell script (full backup) 10. juni kl. 08:30. Tidsfeltet bruker 24 timers format. Så, for 08:00 bruk 8, og for 20:00 bruk 20.

30 08 10 06 * /home/maverick/full-backup>

30 – 30. minutt 08 – 08 AM 10 – 10. dag 06 – 6. måned (juni) * – Hver dag i uken

2. For å vise Crontab-oppføringene

  • Se nåværende påloggede brukers Crontab-oppføringer: For å se dine crontab-oppføringer, skriv crontab -l fra din unix-konto.
  • Se Root Crontab-oppføringer: Logg på som root-bruker (su – root) og gjør crontab -l.
  • For å se crontab-oppføringer til andre Linux-brukere: Logg på root og bruk -u {brukernavn} -l.

3. For å redigere Crontab-oppføringer Rediger gjeldende påloggede brukers Crontab-oppføringer.

For å redigere en crontab-oppføring, bruk crontab -e. Som standard vil dette redigere crontab for gjeldende påloggede brukere.

4. Å planlegge en jobb for hvert minutt ved hjelp av Cron.

Ideelt sett har du kanskje ikke et krav om å planlegge en jobb hvert minutt. Men å forstå dette eksemplet vil hjelpe deg å forstå de andre eksemplene.

* * * * * CMD>

* betyr alle mulige enheter - det vil si hvert minutt av hver time gjennom hele året. Mer enn å bruke denne * direkte, vil du finne den veldig nyttig i følgende tilfeller. Når du angir */5 i minuttfeltet betyr det hvert 5. minutt. Når du angir 0-10/2 i minuttfeltet, betyr det hvert 2. minutt i de første 10 minuttene. Konvensjonen ovenfor kan derfor brukes for alle de fire andre feltene.

5. For å planlegge en jobb for mer enn én gang (f.eks. To ganger om dagen)

Følgende skript tar en inkrementell sikkerhetskopi to ganger om dagen hver dag. Dette eksemplet kjører det spesifiserte inkrementelle backup shell-skriptet (incremental-backup) kl. 11:00 og 16:00 hver dag. Den kommaseparerte verdien i et felt spesifiserer at kommandoen må utføres i hele den nevnte tiden.

00 11, 16 * * * /home/maverick/bin/incremental-backup>

00 – 0. minutt (Topp i timen) 11, 16 – 11 AM og 4 PM * – Hver dag * – Hver måned * – Hver dag i uken

6. For å planlegge en jobb for et bestemt tidsrom (f.eks. bare på ukedager)

Hvis du ønsket at en jobb skulle planlegges for hver time med et spesifikt tidsrom, bruk følgende.

  • Cron Job hver dag i arbeidstiden : Dette eksemplet sjekker statusen til databasen hver dag (inkludert helger) i arbeidstiden 9.00 – 18.00
00 09-18 * * * /home/maverick/bin/check-db-status>
  • 00 – 0. minutt (toppen av timen) 09–18 – 9 am, 10 am, 11 am, 12 am, 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm * – Hver dag * – Hver måned * – Hver dag i uken
  • Cron Job hver ukedag i arbeidstiden : Dette eksemplet sjekker statusen til databasen hver ukedag (dvs. unntatt lør og søn) i arbeidstiden 9.00 – 18.00.
00 09-18 * * 1-5 /home/maverick/bin/check-db-status>
  • 00 – 0. minutt (toppen av timen) 09–18 – 9 am, 10 am, 11 am, 12 am, 1 pm, 2 pm, 3 pm, 4 pm, 5 pm, 6 pm * – Hver dag * – Hver måned 1-5 -man, tirs, ons, tors og fre (hver ukedag)

7. Å planlegge en Cron-jobb i bakgrunnen for hvert 10. minutt.

Bruk følgende hvis du vil sjekke diskplassen hvert 10. minutt.

gimp rektangel tegning
*/10 * * * * /home/maverick/check-disk-space>

Den utfører den angitte kommandoen check-disk-space hvert 10. minutt gjennom hele året. Men du kan ha et krav om å utføre kommandoen bare i løpet av visse timer eller omvendt. Eksemplene ovenfor viser hvordan du gjør disse tingene. I stedet for å spesifisere verdier i de 5 feltene, kan vi spesifisere det ved å bruke et enkelt nøkkelord som nevnt nedenfor. Det er spesielle tilfeller der du i stedet for de ovennevnte 5 feltene kan bruke @ etterfulgt av et nøkkelord - for eksempel omstart, midnatt, årlig, hver time. Cron spesielle nøkkelord og dets betydning

Keyword Equivalent @yearly 0 0 1 1 * @daily 0 0 * * * @hourly 0 * * * * @reboot Run at startup.>

8. Å planlegge en jobb for det første minuttet av hvert år ved å bruke @yearly

Hvis du vil at en jobb skal utføres det første minuttet av hvert år, kan du bruke nøkkelordet @yearly cron som vist nedenfor. Dette vil utføre systemets årlige vedlikehold ved å bruke shell-skriptet for årlig vedlikehold kl. 00:00 1. januar for hvert år.

@yearly /home/maverick/bin/annual-maintenance>

9. For å planlegge en Cron-jobb i begynnelsen av hver måned ved å bruke @monthly

Det er like likt som @yearly som ovenfor. Men utfører kommandoen månedlig én gang ved å bruke @monthly cron nøkkelord. Dette vil utføre shell script tape-backup kl. 00:00 den 1. i hver måned.

@monthly /home/maverick/bin/tape-backup>

10. Å planlegge en bakgrunnsjobb hver dag ved å bruke @daily

Ved å bruke @daily cron nøkkelordet, vil dette gjøre en daglig loggfilopprydding ved hjelp av cleanup-logs shell script kl. 00:00 hver dag.

@daily /home/maverick/bin/cleanup-logs 'day started'>

11. For å utføre en linux-kommando etter hver omstart ved å bruke @reboot

Ved å bruke @reboot cron nøkkelordet, vil dette utføre den angitte kommandoen én gang etter at maskinen ble startet opp hver gang.

@reboot CMD>