En guide til Cron-udtryk

1. Oversigt

Kort sagt, cron er et grundlæggende værktøj, der er tilgængeligt på Unix-baserede systemer. Det giver brugerne mulighed for at planlægge opgaver, der skal køre med jævne mellemrum på en bestemt dato / tid. Og det er naturligvis et godt værktøj til automatisering af mange proceskørsler, som ellers ville kræve menneskelig indgriben.

Cron kører som en dæmonproces - det betyder, at den kun skal startes en gang, og den fortsætter med at køre i baggrunden. Denne proces gør brug af crontab at læse posterne i tidsplanerne og starte opgaverne.

Over tid, Cron-ekspressionsformatet blev bredt vedtaget og mange andre programmer og biblioteker gør brug af det.

2. Arbejde med Crontab

EN cron tidsplan er en simpel tekstfil placeret under / var / spole / cron / crontabs på Linux-systemer. Vi kan ikke redigere crontab filer direkte; vi har brug for at få adgang til det ved hjælp af crontab kommando.

For eksempel at åbne crontab fil, skal vi affyre denne kommando:

crontab -e

Hver linje ind crontab er en post med et udtryk og en kommando til at køre:

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

Denne post kører det nævnte script hvert minut.

3. Kronekspression

Lad os forstå det cron udtryk; den består af fem felter:

3.1. Specialtegn i udtryk

  • * (alle) - specificerer, at begivenheden skal ske for hver tidsenhed. For eksempel, “*” i <minut> felt - betyder "for hvert minut"
  • ? (nogen) - det bruges i <dag-i-måned> og <ugedag>felter for at betegne den vilkårlige værdi - forsøm feltværdien. For eksempel, hvis vi ønsker at affyre et script på "5. i hver måned" uanset hvad ugedagen falder på den dato, så specificerer vi et "?”I <ugedag> Mark
  • - (rækkevidde) - bestemmer værdiområdet. For eksempel, "10-11”I felt betyder "10. og 11. time"
  • , (værdier) - angiver flere værdier. For eksempel, "MÅN, WED, FRI ” i <ugedag> felt betyder på dagene "mandag, onsdag og fredag"
  • / (trin) - specificerer de inkrementelle værdier. F.eks “5/15” i <minut>felt, betyder "5, 20, 35 og 50 minutter i timen"
  • L (sidste) - det har forskellige betydninger, når det bruges på forskellige områder. For eksempel, hvis det anvendes i <dag-i-måned>felt, så betyder det sidste dag i måneden, dvs. "31. januar" og så videre pr. kalendermåneden. Det kan bruges med en offsetværdi, som “L-3“, Der angiver den” tredje til sidste dag i kalendermåneden ”. I <ugedag>, det angiver "den sidste dag i en uge". Det kan også bruges med en anden værdi i <ugedag>, synes godt om "6L“, Som betegner“ sidste fredag ​​”
  • W (hverdag) - bestemmer ugedagen (mandag til fredag) nærmest en given dag i måneden. For eksempel, hvis vi specificerer “10W”I <dag-i-måned>felt, så betyder det "hverdag tæt på 10. i den måned". Så hvis "10." er en lørdag, udløses jobbet på "9.", og hvis "10." er en søndag, udløses det på "11.". Hvis vi specificerer “1W”I <dag-i-måned> og hvis "1." er lørdag, udløses jobbet på "3.", som er mandag, og det springer ikke tilbage til den foregående måned
  • # - specificerer “N-th ”forekomst af en hverdag i måneden, f.eks. kan“ 3. fredag ​​i måneden ”angives som“6#3

3.2. Eksempler på Cron Expression

Lad os se nogle eksempler på cron udtryk ved at bruge kombinationerne af felter og specialtegn:

Kl. 12.00 (middag) hver dag:

0 12 * * ?

Hvert 5. minut, der starter kl. 13 og slutter kl. 13.55 og derefter starter kl. 18 og slutter kl. 18.55 hver dag:

0/5 13,18 * * ?

Hvert minut starter kl. 13 og slutter kl. 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. 9.30 hver mandag, tirsdag, onsdag, torsdag og fredag:

30 9? * MON-FRI

Kl. 9.30 den 15. dag i hver måned:

30 9 15 * ?

Kl. 18 den sidste dag i hver måned:

0 18 L *?

Kl. 18 den 3. til sidste dag i hver måned:

0 18 L-3 *?

10.30 den sidste torsdag i hver måned:

30 10? * 5L

Kl. 10 den tredje mandag i hver måned:

0 10 ? * 2#3

Klokken 12 midnat hver dag i fem dage startende på den 10. dag i måneden:

0 0 10/5 * ?

4. Cron Special Strings

Ud over de felter, der er specificeret i cron-udtrykket, er der også understøttelse af nogle specielle, foruddefinerede værdier - som vi kan bruge i stedet for felterne:

  • @reboot- løb en gang ved opstart
  • @årligt eller @ årlig - løb en gang om året
  • @månedlige- kør en gang om måneden
  • @ugentlig- løb en gang om ugen
  • @dagligeeller @midnat- løb en gang om dagen
  • @hver time- kør hver time

5. Konklusion

I denne hurtige artikel har vi udforsket cron job og crontab.

Vi har også set et antal ekspressionseksempler, vi kan bruge i vores daglige arbejde, eller blot udlede andre udtryk fra.


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