logo

'crontab' i Linux med eksempler

Det crontab er en liste over kommandoer, som du vil køre på en almindelig tidsplan, og også navnet på den kommando, der bruges til at administrere listen. Crontab står for cron table, fordi den bruger jobplanlæggeren cron til at udføre opgaver; cron selv er opkaldt efter chronos, det græske ord for tid. cron er systemprocessen, som automatisk udfører opgaver for dig i henhold til en fastsat tidsplan. Tidsplanen kaldes crontab, som også er navnet på det program, der bruges til at redigere den tidsplan.

Linux Crontab-syntaks

Linux Crontab-formatet er repræsenteret af følgende syntaks:



MIN HOUR DOM MON DOW   CMD>

Lad os opdele hvert felt:

Mark

Beskrivelse



Tilladt værdi

MIN (minut)

Angiver det minut, hvor kommandoen skal køre



Det går fra 0 til 59.

TIME

Angiver tidspunktet på dagen, hvor kommandoen er planlagt til at udføres.

Det spænder fra 0 til 23.

DOM (dag i måneden)

Angiver dagen i måneden for opgaven.

Det går fra 1 til 31.

MON (måned)

Angiver den måned, hvor kommandoen vil blive udført.

Det varierer fra 1 til 12.

DOW (ugedag)

Angiver ugedagen for opgaven.

Det er repræsenteret ved tal fra 0 til 6, hvor både 0 og 6 svarer til søndag.

CMD (kommando)

Repræsenterer den faktiske kommando eller script, der kører på det planlagte tidspunkt.

—————–

Eksempler på Cron jobs

1. Planlægning af et job til et bestemt tidspunkt

Den grundlæggende brug af cron er at udføre et job på et bestemt tidspunkt som vist nedenfor. Dette vil udføre fuld backup shell-scriptet (fuld backup) den 10. juni kl. 08:30. Tidsfeltet bruger 24 timers format. Så til 8 om morgenen brug 8, og til 20:00 brug 20.

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

30 – 30. minut 08 – 08 AM 10 – 10. Dag 06 – 6. måned (juni) * – Alle ugens dage

2. For at se Crontab-posterne

  • Se aktuelle loggede brugers Crontab-poster: For at se dine crontab-poster, skriv crontab -l fra din unix-konto.
  • Se Root Crontab-indgange: Log ind som root-bruger (su – root) og gør crontab -l.
  • For at se crontab-indgange fra andre Linux-brugere: Log ind på root og brug -u {brugernavn} -l.

3. For at redigere Crontab-indgange Rediger den aktuelle loggede brugers Crontab-indgange.

For at redigere en crontab-indgange, brug crontab -e. Som standard vil dette redigere den aktuelle loggede brugers crontab.

4. At planlægge et job for hvert minut ved hjælp af Cron.

Ideelt set har du måske ikke et krav om at planlægge et job hvert minut. Men at forstå dette eksempel vil hjælpe dig med at forstå de andre eksempler.

* * * * * CMD>

* betyder alle mulige enheder - dvs. hvert minut af hver time gennem hele året. Mere end at bruge denne * direkte, vil du finde den meget nyttig i følgende tilfælde. Når du angiver */5 i minutfeltet betyder det hvert 5. minut. Når du angiver 0-10/2 i minutfeltet betyder det hvert 2. minut i de første 10 minutter. Således kan ovenstående konvention bruges til alle de andre 4 felter.

5. At planlægge et job til mere end én gang (f.eks. To gange om dagen)

Følgende script tager en trinvis backup to gange om dagen hver dag. Dette eksempel udfører det angivne inkrementelle backup shell-script (incremental-backup) kl. 11:00 og 16:00 hver dag. Den kommaseparerede værdi i et felt angiver, at kommandoen skal udføres i al den nævnte tid.

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

00 – 0. minut (Top of the time) 11, 16 – 11 AM og 4 PM * – Hver dag * – Hver måned * – Alle ugens dage

6. At planlægge et job til et bestemt tidsinterval (f.eks. Kun på hverdage)

Hvis du ønskede, at et job skulle planlægges for hver time inden for et bestemt tidsinterval, så brug følgende.

  • Cron Job hverdag i arbejdstiden : Dette eksempel kontrollerer status for databasen hver dag (inklusive weekender) i arbejdstiden 9.00 – 18.00
00 09-18 * * * /home/maverick/bin/check-db-status>
  • 00 – 0. minut (Top of the time) 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 dag måned * – Alle ugens dage
  • Cron Job alle hverdage i arbejdstiden : Dette eksempel kontrollerer status for databasen hver ugedag (dvs. undtagen lør og søn) i arbejdstiden 9.00 – 18.00.
00 09-18 * * 1-5 /home/maverick/bin/check-db-status>
  • 00 – 0. minut (Top of the time) 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 dag måned 1-5 -man, tir, ons, tor og fre (hver hverdag)

7. At planlægge et baggrunds-Cron-job for hvert 10. minut.

Brug følgende, hvis du vil kontrollere diskpladsen hvert 10. minut.

hvordan man læser fra csv-fil i java
*/10 * * * * /home/maverick/check-disk-space>

Den udfører den angivne kommando check-disk-space hvert 10. minut gennem hele året. Men du kan have et krav om kun at udføre kommandoen i bestemte timer eller omvendt. Ovenstående eksempler viser, hvordan man gør disse ting. I stedet for at angive værdier i de 5 felter, kan vi angive det ved hjælp af et enkelt nøgleord som nævnt nedenfor. Der er særlige tilfælde, hvor du i stedet for ovenstående 5 felter kan bruge @ efterfulgt af et nøgleord — såsom genstart, midnat, årligt, hver time. Cron specielle søgeord og dets betydning

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

8. At planlægge et job til det første minut af hvert år ved hjælp af @yearly

Hvis du ønsker, at et job skal udføres i det første minut af hvert år, kan du bruge nøgleordet @yearly cron som vist nedenfor. Dette vil udføre systemets årlige vedligeholdelse ved hjælp af shell-script til årlig vedligeholdelse kl. 00:00 den 1. januar for hvert år.

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

9. At planlægge et Cron-job i begyndelsen af ​​hver måned ved hjælp af @monthly

Det ligner det @årlige som ovenfor. Men udfører kommandoen månedligt én gang ved hjælp af @monthly cron nøgleord. Dette vil udføre shell script tape-backup kl. 00:00 den 1. i hver måned.

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

10. At planlægge et baggrundsjob hver dag ved hjælp af @daily

Ved at bruge nøgleordet @daily cron, vil dette udføre en daglig logfiloprydning ved hjælp af cleanup-logs shell-script kl. 00:00 hver dag.

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

11. At udføre en linux-kommando efter hver genstart med @reboot

Ved at bruge @reboot cron nøgleordet, vil dette udføre den angivne kommando én gang, efter at maskinen blev startet op hver gang.

@reboot CMD>