Planlegging av periodiske oppgaver ved hjelp av Cron i Linux
cron
er et Linux-program som brukes til å planlegge en kommando eller et skript som skal utføres på et senere tidspunkt. Den kan også brukes til å planlegge periodisk kjørende kommandoer og skript. Programmer som er planlagt ved hjelp av cron blir ofte referert til som Cron jobber. Hovedbruken er for systemadministrasjonsoppgaver som regelmessige sikkerhetskopier, regelmessige programvareoppdateringer og andre lignende vedlikeholdsoppgaver.
Introduksjon
cron
kjører som en demon i Linux, dvs. som en bakgrunnsprosess. Den lar brukere planlegge jobber direkte med crontab-kommandoen, som åpner en konfigurasjonsfil kalt Cron File i en editor. Separate Cron-filer opprettes for hver bruker.
Opprette en Cron-fil og grunnleggende syntaks
De crontab
kommandoen kan utføres med -e
flagg for å redigere en eksisterende Cron-fil. Hvis filen ikke allerede eksisterer, vil den bli opprettet. Hvis brukeren ringer kommandoen for første gang og hvis det er flere filredigerere installert på Linux-systemet, vil kommandoen be brukeren velge en standardredigerer fra en liste over redaktører.
Etter å ha valgt editor, vil en cron-fil for brukeren bli opprettet og åpnet. Du kan nå spesifisere jobber i filen.
Den generelle syntaksen for å spesifisere en Cron Job er:
I utgangspunktet vil kjøre på spesifisert 'minutt' (0-59), 'time' (0-23), 'dag i måneden' (1-31), måned (1-12), ukedag, (0-7, For søndag kan enten 0 eller 7 brukes) i Cron Job. For å forenkle, la oss ta et eksempel:
1 2 3 4 5 ekko "Hei"
Dette betyr kommandoen ekko "Hei"
vil kjøre på hver femte dag i uken (fredag) og hver tredje dag i måneden, hver fjerde måned i året (april), til tiden 02:01 (2. time første minutt).
Hvis samme kommando skal kjøres hver dag kl. 02:01, vil syntaksen se slik ut:
1 2 * * * ekko "Hei"
De *
betyr "alltid" eller "for alle", f.eks. for alle måneder, for alle ukedager osv.
Kommandooperatøren (,
) kan brukes til å legge inn en liste over verdier når oppgaven skal gjentas. For eksempel:
0 2,3,4 * * * ekko "Hei"
Dette vil kjøre programmet kl. 02.00, 03.00 og 04.00, hver dag.
På samme måte, en bindestrek (-
) operatør kan brukes til å spesifisere et område som oppgaven skal gjentas for. For eksempel:
0-20 2 * * * ekko "Hei"
Dette vil kjøre programmet kl. 02:00, 02:01, 02:02 og så videre frem til kl. 02:20.
Endelig har vi skråstreken ( /
) operatør. Denne operatoren brukes til å spesifisere en intervallverdi som oppgaven skal gjentas i henhold til. F.eks. */15
i minuttfeltet betyr at oppgaven skal gjentas hvert 15. minutt. 2-10/2
i timer-feltet spesifiserer at oppgaven skal gjentas mellom 02.00 og 10.00 etter hvert 2-timers intervall (02.00, 04.00, 6.00, 8.00, 10.00).
*/15 2-10/2 * * * ekko "Hei"
Etter at du har skrevet inn i Cron-filen, lagrer du filen og går ut av redigeringsprogrammet.
Du bør se en "installerer ny crontab" melding i terminalen etter å ha lagret og avsluttet crontab-filen.
Makroer
Visse makroer er forhåndsdefinert i Cron som spesifiserer noen ofte nødvendige tidsintervaller, for eksempel hver time, hver dag, hver måned, etc.
For å kjøre en oppgave én gang hver dag ved starten av dagen, dvs. klokken 00:00, bruk makro @daglig
. Dette tilsvarer 0 0 * * *
.
Du kan legge dette inn i Cron-filen på samme måte som beskrevet tidligere.
På lignende måte kan de andre makroene brukes, dvs. @hver time
(minutt 0 av hver time), @månedlig
(00:00 den første dagen i måneden), @ukentlig
(00:00 den første dagen i uken, @årlig
(00:00 første januar hvert år), @start på nytt
(ved hver start av datamaskinen).
Konklusjon
I denne artikkelen lærte vi hvordan du legger til Cron Jobs for vanlig kjøring i Linux. Riktig bruk av Cron Jobs er nyttig for selv de mest irriterende manuelle oppgavene brukeren står overfor, f.eks. regelmessig sletting av gamle logger, arkivering av alle typer kalde data (data som man sjelden får tilgang til), etc.