DevOps-bootcamp · Lektion

Schemalägg uppgifter med Cron

Bemästra verktyget 'cron' för att schemalägga skript och kommandon så att de körs automatiskt vid angivna intervall eller tidpunkter.

Lektion 1 av 411 steg

Schemalägg uppgifter med Cron är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 1 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Automatisera uppgifter med Cron

Välkommen till automatiseringens värld! I den här lektionen lär du dig om cron, ett kraftfullt verktyg i Linux som låter dig schemalägga kommandon eller skript så att de körs automatiskt vid specifika tidpunkter.

Föreställ dig att konfigurera dagliga säkerhetskopieringar eller kontroller av systemet varje timme utan att lyfta ett finger – det är cron:s uppgift!

Din personliga crontab-fil

Varje användare i ett Linux-system har en egen crontab-fil (cron-tabell). Där lagrar du alla dina schemalagda uppgifter.

För att redigera din personliga crontab använder du kommandot crontab -e. Det öppnar filen i din standardtextredigerare, redo för att du ska kunna lägga till nya jobb.

Crontab-post: Tidsfält

En crontab-post består av sex delar. De fem första anger när kommandot ska köras och separeras med blanksteg:

  • Minut: 0-59
  • Timme: 0-23 (0 är midnatt)
  • Dag i månaden: 1-31
  • Månad: 1-12 (eller Jan-Dec)
  • Veckodag: 0-7 (0 eller 7 är söndag, 1 är måndag)

Crontab-post: Kommandot

Den sjätte och sista delen av en crontab-post är det kommando eller skript som du vill köra.

Det är viktigt att använda absoluta sökvägar för kommandon och skript här (till exempel /usr/bin/python i stället för bara python). Cron-jobb körs i en begränsad miljö, så din vanliga PATH kanske inte är tillgänglig.

Särskilda crontab-tecken

För att göra dina scheman flexibla använder cron särskilda tecken:

  • * (asterisk): Matchar alla möjliga värden (till exempel varje minut eller varje timme).
  • , (kommatecken): Avgränsar en lista med värden (till exempel 1,15 för minut 1 och 15).
  • - (bindestreck): Anger ett intervall av värden (till exempel 9-17 för timmarna 9 till och med 17).
  • / (snedstreck): Anger stegintervall (till exempel */10 för var tionde minut).

Fördefinierade genvägar för schemaläggning

För vanliga schemaläggningsbehov erbjuder cron praktiska genvägar som ersätter de fem första tidsfälten:

  • @reboot: Körs en gång efter att systemet har startats om.
  • @yearly (eller @annually): Körs en gång per år (0 0 1 1 *).
  • @monthly: Körs en gång per månad (0 0 1 * *).
  • @weekly: Körs en gång per vecka (0 0 * * 0).
  • @daily (eller @midnight): Körs en gång per dag (0 0 * * *).
  • @hourly: Körs en gång i timmen (0 * * * *).

Praktisk övning: Schemalägg ett enkelt skript

Vi skapar ett enkelt skript som loggar en hälsning och schemalägger det så att det körs varje dag klockan 10:00.

  1. Skapa skriptet (till exempel ~/greet.sh):
  2. Gör det körbart: chmod +x ~/greet.sh
  3. Lägg till det i crontab (crontab -e):
    0 10 * * * /home/user/greet.sh
    Den här posten betyder: Kör /home/user/greet.sh vid minut 0, timme 10 (10:00), varje dag i månaden, varje månad och varje veckodag.
#!/bin/bash
# This script logs a greeting to a temporary file.
echo "Hello from Cron! The time is $(date)" >> /tmp/cron_greeting.log

Hantera dina Cron-jobb

När du har lagt till cron-jobb behöver du hantera dem:

  • För att visa dina aktuella crontab-poster: crontab -l
  • För att ta bort alla dina crontab-poster (var ytterst försiktig eftersom åtgärden inte kan ångras!): crontab -r

Granska alltid din crontab med crontab -l efter ändringar för att säkerställa att posterna är korrekta.

Crons miljövariabler

Kom ihåg att cron-jobb körs i en begränsad miljö. Det innebär att de ofta inte har samma miljövariabler (som PATH) som ditt interaktiva skal.

Om ditt skript är beroende av specifika kommandon använder du deras absoluta sökvägar eller definierar nödvändiga miljövariabler direkt i början av crontab-filen, till exempel PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin.

Utmaning: Crontab-syntax

Du behöver schemalägga ett skript med namnet /home/user/daily_report.sh så att det körs klockan 9:15 varje vardag (måndag till fredag). Vilken crontab-post är korrekt?

Sammanfattning: Bemästra Cron-schemaläggning

Bra jobbat! Nu behärskar du grunderna i cron för schemaläggning av uppgifter.

  • Du har lärt dig om crontab-filen och hur du redigerar den med crontab -e.
  • Du förstår de sex fälten i en cron-post, inklusive tidsfälten och kommandot.
  • Du har utforskat särskilda tecken och fördefinierade genvägar för flexibel schemaläggning.
  • Du vet hur du hanterar dina jobb med crontab -l och crontab -r.
  • Du har också lärt dig om vikten av absoluta sökvägar och miljövariabler i crons kontext.

Gå nu vidare och automatisera!

Gratis att börja

Lär dig DevOps-bootcamp med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
142
Lektioner
568

Vanliga frågor

Är lektionen ”Schemalägg uppgifter med Cron” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Schemalägg uppgifter med Cron”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Vad lär jag mig i ”Schemalägg uppgifter med Cron”?

Bemästra verktyget 'cron' för att schemalägga skript och kommandon så att de körs automatiskt vid angivna intervall eller tidpunkter. Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?

Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 1 av 4.

Hur lång tid tar lektionen ”Schemalägg uppgifter med Cron”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?

Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Schemalägg uppgifter med Cron
  2. Automatisera systemadministration
  3. Projekt: avancerad skriptning
  4. Automatisk loggrotering och rensning
← Tillbaka till DevOps-bootcamp