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 / skriptFra 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:
- Asterisk (*): Å spesifisere alle mulige verdier for et felt
- Bindestrek (-): Til sangi en rekke verdier
- Kommaet (,): For å spesifisere en liste over verdier
- 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 / crontabHer 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 -eHvis 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 -uFor 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 -eHer 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 / skriptKjø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 / skriptKjø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 / skriptKjø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 / skriptKjø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 / skriptKjø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 / skriptKjø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:
- @hver time: Å utføre en jobb en gang i timen, i.e., “0 * * * *“
- @midnatt: Å utføre en jobb en gang hver dag, i.e., “0 0 * * *“
- @daglig: samme som midnatt
- @ukentlig: Å utføre en jobb en gang hver uke, i.e., “0 0 * * 0“
- @månedlig: Å utføre en jobb en gang hver måned, i.e., “0 0 1 * *“
- @årlig: Å utføre en jobb en gang hvert år, jeg.e., “0 0 1 1 *“
- @årlig: samme som @ årlig
- @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 / skriptForhå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 -lVis jobber for rotbrukerne
For å se alle de planlagte jobbene til rotbrukeren, send følgende kommando i Terminal:
$ katt / etc / crontabDu 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
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 timeSe 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.tekstFjerner alle planlagte Cron-jobber
For å fjerne alle planlagte cron-jobber, bruk -r-flagget som følger:
$ crontab -rCron 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.