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.
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(ellerJan-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 exempel1,15för minut 1 och 15).-(bindestreck): Anger ett intervall av värden (till exempel9-17för timmarna 9 till och med 17)./(snedstreck): Anger stegintervall (till exempel*/10fö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.
- Skapa skriptet (till exempel
~/greet.sh): - Gör det körbart:
chmod +x ~/greet.sh - Lägg till det i crontab (
crontab -e):0 10 * * * /home/user/greet.sh
Den här posten betyder: Kör/home/user/greet.shvid 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.logHantera 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 medcrontab -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 -lochcrontab -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!
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
- Schemalägg uppgifter med Cron
- Automatisera systemadministration
- Projekt: avancerad skriptning
- Automatisk loggrotering och rensning