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.