En guide til Cron-uttrykk

1. Oversikt

Enkelt sagt, cron er et grunnleggende verktøy tilgjengelig på Unix-baserte systemer. Det gjør det mulig for brukere å planlegge at oppgaver skal kjøres med jevne mellomrom på en spesifisert dato / tid. Og det er naturlig nok et flott verktøy for å automatisere mange prosesskjøringer som ellers ville kreve menneskelig inngripen.

Cron kjører som en demonprosess - dette betyr at den bare må startes en gang, og den vil fortsette å kjøre i bakgrunnen. Denne prosessen bruker crontab å lese oppføringene i timeplanene og starte oppgavene.

Over tid, Cron uttrykk format ble mye vedtatt og mange andre programmer og biblioteker bruker det.

2. Arbeide med Crontab

EN cron tidsplan er en enkel tekstfil som ligger under / var / spole / cron / crontabs på Linux-systemer. Vi kan ikke redigere crontab filer direkte; vi trenger tilgang til den ved hjelp av crontab kommando.

For eksempel å åpne crontab fil, må vi utløse denne kommandoen:

crontab -e

Hver linje inn crontab er en oppføring med et uttrykk og en kommando å kjøre:

* * * * * /usr/local/ispconfig/server/server.sh

Denne oppføringen kjører det nevnte skriptet hvert eneste minutt.

3. Kronuttrykk

La oss forstå cron uttrykk; den består av fem felt:

3.1. Spesialkarakterer i uttrykk

  • * (alle) - spesifiserer at hendelsen skal skje for hver tidsenhet. For eksempel, “*” i <minutt> felt - betyr "for hvert minutt"
  • ? (noen) - den brukes i <dag-i-måned> og <ukedag>felt for å betegne den vilkårlige verdien - forsøm feltverdien. For eksempel, hvis vi ønsker å skyte et skript på "5. i hver måned" uavhengig av hva ukedagen faller på den datoen, så spesifiserer vi "?”I <ukedag> felt
  • - (område) - bestemmer verdiområdet. For eksempel, "10-11”I felt betyr “10. og 11. time”
  • , (verdier) - spesifiserer flere verdier. For eksempel, "MON, WED, FRI ” i <ukedag> felt betyr på dagene “mandag, onsdag og fredag”
  • / (trinn) - spesifiserer trinnverdiene. For eksempel, a “5/15” i <minutt>felt, betyr "5, 20, 35 og 50 minutter av en time"
  • L (siste) - den har forskjellige betydninger når den brukes på forskjellige felt. For eksempel hvis den brukes i <dag-i-måned>felt, så betyr det siste dag i måneden, dvs. "31. januar" og så videre i kalendermåneden. Den kan brukes med en forskjøvet verdi, som “L-3“, Som betegner den” tredje til siste dagen i kalendermåneden ”. I <ukedag>, den spesifiserer "den siste dagen i en uke". Den kan også brukes med en annen verdi i <ukedag>, som "6L", Som betegner" sist fredag ​​"
  • W (ukedag) - bestemmer ukedagen (mandag til fredag) nærmest en gitt dag i måneden. Hvis vi for eksempel spesifiserer “10W”I <dag-i-måned>felt, så betyr det "ukedag nær 10. i den måneden". Så hvis "10." er en lørdag, vil jobben utløses på "9.", og hvis "10." er en søndag, vil den utløse på "11.". Hvis vi spesifiserer “1W”I <dag-i-måned> og hvis "første" er lørdag, vil jobben utløses på "tredje" som er mandag, og den hopper ikke tilbake til forrige måned
  • # - spesifiserer “N-th "forekomst av en ukedag i måneden, for eksempel," 3. fredag ​​i måneden "kan angis som"6#3

3.2. Eksempler på Cron Expression

La oss se noen eksempler på cron uttrykk ved å bruke kombinasjonene felt og spesialtegn:

12.00 (middag) hver dag:

0 12 * * ?

Hvert 5. minutt som begynner klokken 13 og slutter klokken 13:55 og deretter begynner klokken 18 og slutter klokken 18:55 hver dag:

0/5 13,18 * * ?

Hvert minutt starter klokken 13 og slutter klokken 13.05 hver dag:

0-5 13 * * ?

Kl. 13:15 og 13:45 hver tirsdag i juni måned:

15,45 13? 6 Tir

Kl. 09:30 hver mandag, tirsdag, onsdag, torsdag og fredag:

30 9? * MON-FRI

Klokka 09:30 på den 15. dagen i hver måned:

30 9 15 * ?

Klokka 18 den siste dagen i hver måned:

0 18 L *?

Klokka 18 den 3. til siste dagen i hver måned:

0 18 L-3 *?

10.30 den siste torsdagen i hver måned:

30 10? * 5L

Klokka 10 den tredje mandagen i hver måned:

0 10 ? * 2#3

Klokken 12 midnatt hver dag i fem dager som begynner på den 10. dagen i måneden:

0 0 10/5 * ?

4. Cron Special Strings

I tillegg til feltene som er spesifisert i cron-uttrykket, er det også støtte for noen spesielle, forhåndsdefinerte verdier - som vi kan bruke i stedet for feltene:

  • @reboot- løp en gang ved oppstarten
  • @årlig eller @ årlig - løpe en gang i året
  • @månedlig- løp en gang i måneden
  • @ukentlig- løp en gang i uken
  • @dagligeller @midnatt- løp en gang om dagen
  • @hver time- løp hver time

5. Konklusjon

I denne raske artikkelen har vi utforsket cron jobber og crontab.

Vi har også sett en rekke eksempler på uttrykk vi kan bruke i vårt daglige arbeid, eller bare utlede andre uttrykk fra.


$config[zx-auto] not found$config[zx-overlay] not found