Ett Cron- eller Cron-jobb är en tidsbaserad schemaläggare som är vanlig i Linux / Unix-system. Det schemalägger angivna användaruppgifter att köras regelbundet i fast datum, tid eller intervall. De flesta av dessa uppgifter är skript för att utföra funktioner som säkerhetskopior och mer. För att skapa dessa cron-jobb använder vi crontab-kommandona. En crontab är ett UNIX-kommando / verktyg som används för att skapa och hantera cron-jobb.
Som du kommer att se nedan är det enkelt att skapa och redigera ett cron-jobb. Det mest fantastiska är att du inte behöver starta om cron eller ens din dator efter att du har skapat eller redigerat ett cron-jobb. Spara bara filen så är du klar.
Vanliga användningsområden för Cron Jobs
- Ställa in hårdvarutid: Network Time Protocol används av många datorer för att ställa in systemtiden men anger inte hårdvarutiden. Med cron kan du ställa in hårdvarutiden baserat på systemtiden.
- Schemalägga uppgifter och köra program som kör dagliga program: Med cron-tjänsten kan du köra många systemtjänster som behöver daglig prompten som Logwatch.
- Rengöring av katalog automatiskt, körning av säkerhetskopieringsprogram och mycket mer.
Grundläggande delar av ett cron-kommando
Standardsyntaxen för crontab är enligt nedan:
a b c d e USERNAME / path / to / script output
1.Tid och datum tillsammans med hur repetitivt jobbet kommer att anges anges av de fem fälten:
-
- a: Protokoll: (sträcker sig från 0 - 59)
- b: Öppettider: (varierar från 0 - 23 )
- c: Dagar: (sträcker sig från 0 - 31 )
- d: Månader: (sträcker sig från 0 - 12 )
- e: Veckodagar: (Allt från 0 - 7. )
- a: Protokoll: (sträcker sig från 0 - 59)
Obs: Dagarna börjar med måndag. 0 och 7 representerar söndag
2. ANVÄNDARNAMN
: Kom ihåg att ersätta detta med ditt användarnamn
3. Den specifika platsen och skriptet som ska köras av cron anges av det tredje segmentet:
/ sökväg / till / skript
4. Det sista avsnittet definierar aviseringen till användaren när jobbet slutförts som ett sätt att hålla reda på uppgifterna:
produktion
Din inkorg kan dock vara full av mindre uppgifter som ofta kanaliseras. För att undvika detta kan du inaktivera den automatiska e-postutmatningen genom att lägga till strängen nedan i ditt cron-kommando:
> / dev / null 2> & 1 e.g a b c d e USERNAME / path / to / script> / dev / null 2> & 1
Dessutom använder cron ytterligare fyra värden som används för att specificera flera värden i ett fält. Dom är:
- Asterisk (*): Avser alla värden i ett fält.
- Kommat (,): Använd för att separera en lista över värden i cron-kommandot.
- Rusa (-): Ange ett intervall av värden.
- Snedstreck (/): delar upp ett värde i olika steg.
Ställa in cron-jobb
Crontab-kommandona ansvarar för att skapa och redigera cron-jobb eftersom cron-filerna inte ska redigeras direkt. Crontab definierar hur du kan skapa, redigera, lista, felsöka, installera och avinstallera cron-uppgifterna.
Innan du börjar med cron-jobb är det viktigt att du ser till att ditt Linux-skrivbord eller din server är uppdaterad genom att utföra kommandona nedan:
sudo apt uppdatering sudo apt uppgradering
Om du inte har cron-paketet installerat på ditt system, installera det med kommandot nedan:
sudo apt-get install cron
Hur du redigerar crontab-filen?
För att slutföra processen måste du konfigurera cron-jobbet. Användaren som är inloggad när ett cron-jobb skapas blir automatiskt ägare. Det kan ändras genom att skapa en jobbägare som kommer att ha ansvaret för att hantera cron-jobbet, som vi kommer att se i det här inlägget.
För att öppna konfigurationsfilen för crontab för den användare som är inloggad, kör kommandot nedan:
crontab -e
Du kommer att uppmanas av systemet att välja en lämplig redigerare. I vårt fall väljer vi det första alternativet (nano editor).
Du kan lägga till en schemalagd uppgift per rad enligt dina preferenser.
När du har lagt till uppgifterna, avsluta med att spara filen och avsluta. Alla instruktioner som tillhandahålls kommer att läsas och utföras av cron-demon. Ändringarna kommer att tillämpas även utan att starta om ditt system eftersom förvaret uppdateras automatiskt.
Redigera crontab för en annan användare
Crontab kan redigeras för olika användare med ett kommando i syntaxen nedan:
crontab -u other_username -e
Hur man använder specialtecken i crontab-kommandon
Tecken och operatörer dikterar mer anpassning av ditt system eftersom de utökar funktionerna för en cron-uppgift.
- Slash används för att dela upp en tidssträng i specificerade steg. Till exempel, för att köra en säkerhetskopia var 30: e minut kan vi använda:
* / 30 * * * *
- Asterisken (*) används för att utföra alla värden som ska köras. Till exempel:
* / 15 ***
- Strecket (-) används för att bestämma utbudet av aktiviteter, till exempel antalet dagar. För
till exempel, kör koden klockan 6 varje vardag, kommer vi att använda;
0 6 * * 1-5 / root / backup.sh
Här står 06 för 6 am 1-5 står för antalet dagar (måndag till fredag).
- Ett komma anger de enskilda förekomsterna när koden ska köras:
0 4 * * 2,4 / root / backup.sh
Kommandot ovan skulle utföra din skriptkod klockan 4 på tisdag och torsdag.
- Du kan också kombinera olika jokertecken för att anpassa dina kommandon ännu mer. Till exempel, för att köra vårt skript varannan dag vid 35 minuter efter timmen kan vi använda kommandot nedan:
35 1-23 / 2 * * * / sökväg / till / skript / skript.sh
1-23 anger intervallet för timmar, / 2 ställer in intervallet varannan timme.
Cron-alternativ
- Lista alla cron-jobb
Du kanske vill lista cron-jobb i ditt system utan att låsa upp crontab-konfigurationsfilen. Detta kan göras genom att starta din terminal och skriva kommandot nedan:
crontab -l
Det kommandot listar alla cron-jobb som finns i ditt system.
- Ta bort alla crontab-jobb
För att radera alla crontab-kommandon kan du använda kommandot nedan:
crontab -r
- Ta bort ett cron-jobb för en annan användare.
crontab -r -u annat-användarnamn
Använd strängar i Crontab
Strängar är oerhört användbara verktyg för utvecklare eftersom de undviker upprepad skrivning av kodsegment. Lyckligtvis stöder crontabs olika strängvärden. De inkluderar:
@varje timme:
-samma som - “0 * * * *” (Körs en gång var timme)@midnatt:
-samma som - “0 0 * * *” (Körs en gång var dag)@dagligen:
samma som midnatt@varje vecka:
-samma som - “0 0 * * 0” (körs varje gång vecka)@en gång i månaden:
-samma som - “0 0 1 * *” (körs en gång var månad)@årligen:
-samma som - “0 0 1 1 *” (körs en gång var år)@årlig:
liknande @ årligen@reboot:
Körs en gång efter varje omstart / omstart / start.
Ett bra exempel; om du har ett säkerhetskopieringsskript som du vill köra varje dag, använd kommandot nedan:
@daily / path / to / backup_script.sh
Exempel på cron-jobb
Här är en lista över grundläggande cron-jobb som kan användas när du kommer igång:
-
- Så här kör du ett skript varje minut:
* * * * * / din / skript / sökväg.sh
- Så här kör du ett skript var 40: e minut:
40 * * * * / din / skript / sökväg.sh
- Så här kör du ett skript varje timme:
0 * * * * / din / skript / sökväg.sh
- Så här kör du ett skript varje midnatt:
0 0 * * * / din / skript / sökväg.sh
- Så här kör du ett skript var 23: e minut efter midnatt, två och fyra varje dag:
23 0-23 / 2 * * * / din / skript / sökväg.sh
- Att köra ett skript vid 4.05 varje söndag.
5 4 * * sun / your / script / path.sh
- Att köra ett skript klockan 22 under veckan.
0 22 * * 1-5 / din / skript / sökväg.sh
- Att köra ett manus den 1 december - midnatt.
0 0 0 12 * / din / skript / sökväg.sh
- Att köra ett manus på lördag vid midnatt.
0 0 * * 6 / ditt / skript / sökväg.sh
- Att köra ett skript varje timme.
0 * * * * / din / skript / sökväg.sh
- Så här kör du ett skript varje minut:
Med dessa grundläggande exempel kommer du att fördjupa dig i sekvensen och hur den kan modifieras.
Begränsa Cron-åtkomst
Vi ser att cron-jobb kan komma till stor nytta, särskilt när du vill automatisera dina uppgifter. Det kan dock också vara riskabelt om systemet tillåter användare att skapa ett cron-jobb. Även om det inte påverkar personuppgifter, kan vissa cron-jobb ta en hel del systemresurser och därmed fördröja datorn. För att undvika sådana scenarier kan systemadministratören (root-användare) skapa en / etc / cron.tillåta
eller / etc / cron.förneka
filen som endast innehåller användare som kan 'skapa / inte skapa' ett cron jobb.
De / etc / cron.tillåta
filen innehåller användare som kan skapa, redigera, visa eller ta bort crontab-filer. Om den här filen inte existerar kan alla användare skapa och hantera andra cron-jobb än de i / etc / cron.förneka
fil. Om ingen av dessa filer finns krävs superanvändarbehörigheter för att köra crontab-kommandot.
Nu när du har hindrat icke-root-användare från att skapa cron-jobb om de redan har några, kan du överväga att lägga till sina cron-jobb i root crontab-filen. Men här är ett pussel - Genom att lägga till sina cron-jobb till root crontab, kör inte det sina cron-jobb som root? Tja, här kommer vikten av USERNAME-fältet som vi diskuterade ovan i cron-kommandosyntaxen. Till exempel kommandot nedan:
0 * * * * fosslinux / sökväg / till / skript.sh
Körs som cron-jobb för “fosslinux” och inte som root-användare.
Slutsats
Du har nu en tydlig guide om hur du använder Cron-jobb för att automatisera olika uppgifter i ditt system. Det borde inte förvirra dig med startapplikationer. Använd exemplen ovan för att försöka automatisera enkla skript. Med tiden kan du kombinera specialtecken och jokertecken för att utföra mycket mer vardagliga uppgifter. Om du precis har börjat skulle det vara fantastiskt att läsa vårt inlägg på bash scripting tutorial med exempel som hjälper dig att skapa ditt första script.