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 / scriptFra venstre:
- Den første * svarer til minutter (0-59)
- Den anden * svarer til timer (0-23)
- Den tredje * svarer til månedens dag (1-31)
- Den fjerde * svarer til årets måned (1-12)
- Den femte * svarer til ugedag (0-6, søndag til lørdag)
For at specificere flere værdier i et felt skal du bruge følgende operatørsymboler:
- Asterisk (*): For at specificere alle mulige værdier for et felt
- Dash (-): Til sangiv en række værdier
- Kommaet (,): For at specificere en liste over værdier
- 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 / crontabHer 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 -eFor 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 -uFor 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 -eHer 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 / scriptKø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 / scriptKø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 / scriptKø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 / scriptKø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 / scriptKø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 / scriptKø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:
- @hver time: For at udføre et job en gang i timen, dvs.e., “0 * * * *“
- @midnat: At udføre et job en gang dagligt, i.e., “0 0 * * *“
- @daglige: det samme som midnat
- @ugentlig: At udføre et job en gang hver uge, i.e., “0 0 * * 0“
- @månedlige: For at udføre et job en gang hver måned, i.e., “0 0 1 * *“
- @årligt: At udføre et job en gang hvert år, i.e., “0 0 1 1 *“
- @årligt: det samme som @ årligt
- @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 / scriptForuddefinerede 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 -lSe job til rodbrugerne
For at se alle planlagte job hos rodbrugeren skal du udstede følgende kommando i Terminal:
$ kat / etc / crontabDu 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
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 timeSe 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.txtFjernelse af alle planlagte Cron-job
For at fjerne alle planlagte cron-job skal du bruge flaget -r som følger:
$ crontab -rCron 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.