Crontab i Linux: Job Scheduling EXEMPEL
โก Smart sammanfattning
Crontab i Linux schemalรคgger kommandon att kรถras automatiskt vid fasta tider, datum eller intervall med hjรคlp av cron-daemonen, vilket lรฅter administratรถrer automatisera sรคkerhetskopior, loggrensning, aviseringar och rutinmรคssigt systemunderhรฅll utan manuell รฅtgรคrd.

Crontab, fรถrkortning fรถr cron-tabell, รคr konfigurationsfilen och kommandot som driver Linux jobbschemalรคggning. Avsnitten nedan fรถrklarar crontab-formatet, kommandona fรถr att lรคgga till, lista och ta bort jobb, de speciella @-strรคngarna och exempel pรฅ schemalรคggning som รคr fรคrdiga att anvรคnda.
Vad รคr crontab?
Cron รคr uppkallat efter det grekiska ordet "Chronos", som betyder tid. Det รคr en systemprocess (en daemon) som automatiskt utfรถr uppgifter enligt ett fast schema. Cron รคr en uppsรคttning kommandon som anvรคnds fรถr att kรถra regelbundna schemalagda uppgifter. Crontab stรฅr fรถr "cron-tabell", och det lรฅter dig anvรคnda cron-jobbschemalรคggaren fรถr att utfรถra dessa uppgifter.
Crontab รคr ocksรฅ namnet pรฅ programmet som anvรคnds fรถr att redigera det schemat. Det drivs av en crontab-fil โ en konfigurationsfil som listar de shell-kommandon som ska kรถras regelbundet enligt det angivna schemat.
Varfรถr anvรคnda Cron-jobb?
Hรคr รคr de frรคmsta anledningarna till att anvรคnda cron-jobb i Linux:
- Tar schemalagda sรคkerhetskopior av loggfiler eller databaser.
- Tar bort gamla loggfiler automatiskt.
- Archiraderar och rensar databastabeller.
- Skickar e-postmeddelanden med aviseringar, till exempel nyhetsbrev eller pรฅminnelser om lรถsenordsutgรฅng.
- Utfรถr regelbunden rensning av cachade data.
- Automatiserar repetitiva Unix- och Linux-jobb.
- Automatiserar rutinmรคssigt systemunderhรฅll.
Hur anvรคnder man cron i Linux?
Linux-systempaketet innehรฅller en anvรคndbar uppgiftsschemalรคggare som heter crontab. Crontab รคr populรคrt eftersom ett jobb kan schemalรคggas att kรถras som root-anvรคndare, vilket gรถr automatiserade systemรคndringar enklare. Du รคndrar helt enkelt uppgiften en gรฅng och vรคntar sedan tills den utlรถses igen enligt schemat.
Linux Crontab-format
En Linux crontab-post har sex fรคlt. De fรถrsta fem fรคlten anger tid och datum fรถr kรถrningen, och det sjรคtte fรคltet innehรฅller kommandot att kรถra.
Crontab-syntax:
[Minute] [hour] [Day_of_the_Month] [Month_of_the_Year] [Day_of_the_Week] [command]
Diagrammet nedan mappar varje asterisk i en crontab-post till det fรคlt den kontrollerar, frรฅn minut till veckodag, fรถljt av kommandot som ska kรถras.
De fem tidsfรคlten accepterar dessa vรคrden: minut (0โ59), timme (0โ23), veckodag (1โ31), mรฅnad (1โ12 eller janโdec) och veckodag (0โ7, dรคr 0 och 7 bรฅda betyder sรถndag). Du styr varje fรคlt med dessa specialtecken:
- Asterisk (*): Matchar alla mรถjliga vรคrden fรถr det fรคltet.
- Definiera ett intervall: Anvรคnd ett bindestreck fรถr att ange ett intervall, till exempel 1โ10, 30โ40, janโmar eller mรฅnโons.
- Definiera flera intervall: Anvรคnd kommatecken fรถr att kombinera intervall, till exempel apr-juni, okt-dec.
Hur man lรคgger till/รคndrar Crontab
Anvรคndare kan redigera sina egna crontab-jobb med fรถljande crontab-kommando. Alternativet -u riktar sig till en specifik anvรคndares crontab, sรฅ ange anvรคndarnamnet som visas i de senare exemplen:
$ crontab -u -e
Kommandot ovan รถppnar den personliga crontab-konfigurationen fรถr ditt system, som du kan redigera i din standardtextredigerare.
Du behรถver inte starta om cron; den hรคmtar dina รคndringar automatiskt. Fรถr att se dina aktuella jobb, anvรคnd:
$ crontab -l
Fรถr att ta bort dina crontab-uppgifter, anvรคnd fรถljande kommando:
$ crontab -r
Fรถr att lรคgga till eller uppdatera ett jobb i crontab, anvรคnd kommandot nedan:
crontab -e
Fรถr att redigera en annan anvรคndares crontab, namnge anvรคndaren med alternativet -u:
crontab -u username -e
Hur man listar Crontab
Fรถr att visa crontab-posterna fรถr den aktuella anvรคndaren:
crontab -l
Fรถr att visa crontab-posterna fรถr en specifik anvรคndare:
crontab -u username -l
Viktiga Crontab-exempel
Hรคr รคr nรฅgra viktiga, fรคrdiga exempel pรฅ crontab-scheman:
| BESKRIVNING | Kommando |
|---|---|
| Kรถr de olika schemalรคggningsjobben. Kommandot nedan kรถrs dagligen klockan 07:00 och 17:00. |
0 7,17 * * * /scripts/script.sh
|
| Kรถr ett cron-jobb var 5:e minut. |
*/5* * * * * /scripts/script.sh
|
| Utfรถr uppgiften varje Monday klockan 5 pรฅ morgonen. Detta รคr praktiskt fรถr veckovisa uppgifter som systemrensning. |
0 5 * * mon /scripts/script.sh
|
| Kรถr ditt skript med 3 minuters intervall. |
*/3 * * * * /scripts/monitor.sh
|
| Schemalรคgger ett cron-jobb som kรถrs under specifika mรฅnader โ hรคr, februari, juni och september. |
* * * feb,jun,sep * /script/script.sh
|
| Kรถrs pรฅ valda dagar. Detta exempel kรถrs varje Monday och onsdag klockan 5. |
0 17 * * mon,wed /script/script.sh
|
| Tillรฅter att cron kรถrs den fรถrsta lรถrdagen i varje mรฅnad. |
0 2 * * sat [ $(date +%d) -le 06 ] && /script/script.sh |
| Kรถr ett skript med 6 timmars mellanrum, konfigurerat enligt nedan. |
0 */6 * * * /scripts/script.sh
|
| Schemalรคgger en uppgift att kรถras tvรฅ gรฅnger Monday och tisdag. Anvรคnd fรถljande instรคllningar fรถr att gรถra det. |
0 4,17 * * mon,tue /scripts/script.sh
|
| Schemalรคgger ett cron-jobb att kรถras var 15:e sekund. |
* * * * * /scripts/script.sh * * * * * sleep 15; /scripts/script.sh |
| Schemalรคgger uppgifter รฅrligen. @yearly liknar "0 0 1 1 *". Den kรถr uppgiften en gรฅng om รฅret vid midnatt den 1 januari โ praktiskt fรถr nyรฅrshรคlsningar. |
@yearly /scripts/script.sh
|
| Kรถr uppgifter mรฅnadsvis. @monthly liknar "0 0 1 * *". Den kรถr uppgiften vid midnatt den fรถrsta dagen i varje mรฅnad. |
@monthly /scripts/script.sh
|
| Utfรถr flera uppgifter med en enda cron-post. |
* * * * * /scripts/script.sh; /scripts/scrit2.sh |
| Schemalรคgger uppgifter veckovis. @weekly liknar "0 0 * * 0". Den kรถr veckovisa uppgifter som systemrensning vid midnatt varje sรถndag. |
@weekly /bin/script.sh
|
| Schemalรคgger uppgifter dagligen. @daily liknar "0 0 * * *". Den kรถr uppgiften en gรฅng om dagen vid midnatt. |
@daily /scripts/script.sh
|
| Kรถr uppgifter varje timme. @hourly liknar "0 * * * *". Den kรถr uppgiften i bรถrjan av varje timme. |
@hourly /scripts/script.sh
|
| Kรถr uppgifter vid omstart av systemet. @reboot รคr anvรคndbart fรถr uppgifter som systemet ska kรถra vid start, vilket gรถr att bakgrundsjobb startas automatiskt. |
@reboot /scripts/script.sh
|

