crontab

Cron Jobs Komplett nybörjarhandledning

Cron Jobs Komplett nybörjarhandledning
Cron är det mest användbara verktyget i ett Linux- eller UNIX-liknande operativsystem som gör det möjligt att köra kommandon eller skript enligt ett visst schema utan användarintervention. Schemalagda kommandon och skript namnges också som cron-jobb. Det används mest för att automatisera återkommande jobb som att köra schemalagda säkerhetskopior, rengöra tillfälliga filer, systemunderhåll och olika andra återkommande jobb. Det liknar Task Scheduler i Windows OS.

I denna handledning kommer vi att ge dig den grundläggande introduktionen av allt du behöver förstå för att schemalägga ett jobb med cron. Detta inkluderar grundläggande syntax för cron, redigering av crontab-fil, schemalägga ett jobb med cron med några exempel, visa cron-jobb, etc.

Grunderna i Cron Job

Låt oss förstå några grunder i ett cron-jobb.

Vad är Crond?

Crond är demon i Linux-systemet som körs i bakgrunden och kontrollerar varje minut för att se om det finns något jobb schemalagt vid den tiden. Om det finns det utför det jobbet, annars förblir det inaktivt.

Cron Job Syntax

Syntaxen för cron-jobb är som följer:

* * * * * kommando / skript

Från vänster:

För att ange flera värden i ett fält, använd följande operatörssymboler:

  1. Asterisk (*): För att ange alla möjliga värden för ett fält
  2. Dash (-): Till sange ett intervall av värden
  3. Kommatecken (,): För att ange en lista med värden
  4. Separator (/): För att ange ett stegvärde

Redigera Crontab-fil

Crontab är en fil som innehåller schemalagda jobb i en specifik syntax. Det finns två typer av crontab-filer; en för systemspecifika cronjobb och den andra för användarspecifika cronjobb.

System cron jobb

De systemövergripande cron-jobben finns i / etc / crontab fil och / etc / cron.d katalog, och de körs igenom / etc / cron.varje timme, / etc / cron.dagligen, / etc / cron.varje vecka och / etc / cron.en gång i månaden. Endast en systemadministratör kan komma åt dessa filer.

En systemadministratör kan definiera ett cron-jobb med följande kommando:

$ nano / etc / crontab

Här är syntaxen för jobbet i / etc / crontab fil:

# min hr dag i månaden kommandot dayofweek användarnamn
* * * * * användare1 ifconfig

Användarspecifika cron-jobb

De användarspecifika cron-jobben finns i /var / spole / cron / crontabs katalog. Även om du kan redigera dessa jobb manuellt, rekommenderas det att du redigerar dessa jobb med kommandot crontab -e.

En standardanvändare kan definiera ett cron-jobb med följande kommando:

$ crontab -e

Om du till exempel är inloggad som en "test" -användare, kör du crontab -e-kommandot kommer crontab-filen att redigeras för "test" -användaren. På samma sätt, om du är inloggad som root-användare, kommer crontab -e-kommandot att redigera crontab-filen för root-användaren.

Utfärda kommandot nedan i Terminal för att redigera crontab-filen för alla andra användare:

$ sudo crontab -u -e

Om du till exempel är inloggad som en "test1" -användare och vill redigera crontab-filen för "test2" -användaren skulle kommandot vara:

$ sudo crontab -u test2 -e

Här är syntaxen för cron-jobbet som kan läggas till i crontab-filen:

# m h dagfmånadens dagdag i veckan
* * * * * ifconfig

Du kan se i användarspecifika jobb att det inte finns något ”användarnamn”.

Crontab-kommandon

Crontab-kommandot används för att redigera, lista och ta bort cron-jobb:

  • crontab -e För att redigera nuvarande användares crontab-fil
  • crontab -l För att visa innehållet i crontab-filen
  • crontab -u [användarnamn] För att redigera andra användares crontab-fil
  • crontab -r För att ta bort crontab-filen för den aktuella användaren
  • crontab -i För att visa en uppmaning innan du tar bort den aktuella användarens crontab-fil

Planera ett jobb med Cron

Med Cron kan du köra ett jobb vid en viss tid, datum och intervall med en minsta enhet i minuter, dvs.e., du kan köra ett jobb varje minut.

För att schemalägga ett jobb med cron, öppna crontab-filen med metoden som diskuterades i föregående avsnitt. När du öppnat crontab-filen uppmanas du att välja en textredigerare. Skriv ett nummer för att välja önskad textredigerare. Rulla ned till botten av filen och lägg till jobb i den syntax som beskrivs ovan. Varje rad i en fil anger ett kommando. De första fem posterna i raden anger den schemalagda tiden och den sista posten anger vilket kommando eller skript som ska köras.

Exempel:

Följande rad i crontab-filen planerar cron-jobbet för att köra kommandot / skriptet var 30: e minut under de fem timmarna varje veckodag från måndag till lördag.

* / 30 5 * * 1-6 kommando / skript

Minuter

I det här fältet anger vi minuter när vi vill att kommandot ska köras. Den anges från 0 till 59. * I det här fältet betyder att köra jobbet varje minut. I ovanstående crontab-rad säger * / 30 cron-jobbet att köra det angivna kommandot / skriptet var 30: e minut.

Timmar

I det här fältet anger vi timmarna när vi vill att kommandot ska köras. Den anges från 0 till 23. * I det här fältet betyder att köra jobbet varje timme. I ovanstående crontab-rad säger värdet 5 cron-jobbet att köra det angivna kommandot / skriptet var femte timme.

Månadens dag

I det här fältet anger vi de specifika dagar i månader när vi vill att kommandot ska köras. Den anges från 1 till 31. * I detta fält betyder varje dag. I ovanstående crontab-rad säger * till cron-jobbet att köra det angivna kommandot / skriptet varje dag.

Årets månad

I det här fältet anger vi de specifika månaderna då vi vill att kommandot ska köras. Den anges från 1 till 12. * I detta fält betyder varje månad. I ovanstående crontab-rad säger * till cron-jobbet att köra det angivna kommandot / skriptet varje månad.

Dag i veckan

I det här fältet anger vi de specifika veckodagarna när vi vill att kommandot ska köras. Den anges från 0 till 6 från söndag till lördag (0 för söndag och 6 för lördag). * I detta fält betyder varje dag i en vecka. I ovanstående crontab-rad säger * till cron-jobbet att köra det angivna kommandot / skriptet varje dag i en vecka.

Exempel på Cron Jobs

Här är några exempel på cron-jobb:

Kör ett cron-jobb var 15: e minut

För att schemalägga att ett cron-jobb ska köras var 15: e minut, lägg till nedanstående rad i crontab-filen:

* / 15 * * * * kommando / skript

Kör ett cron-jobb klockan 5 varje dag

För att schemalägga ett cron-jobb som ska köras klockan 5 varje dag, lägg till nedanstående rad i crontab-filen:

0 5 * * * kommando / skript

Kör ett cron-jobb klockan 17 varje dag

För att schemalägga att ett cron-jobb ska köras klockan 17.00 varje dag, lägg till nedanstående rad i crontab-filen:

0 17 * * * kommando / skript

Kör ett kronjobb klockan 9 den första dagen i varje månad

För att schemalägga ett cron-jobb som ska köras klockan 9 på den första dagen i varje månad, lägg till nedanstående rad i crontab-filen:

0 9 1 * * kommando / skript

Kör ett kronjobb varje timme var 15: e mars

För att schemalägga ett cron-jobb varje timme var 15: e mars, lägg till nedanstående rad i crontab-filen:

0 * 15 3 * kommando / skript

Kör ett cron-jobb var femte timme

För att schemalägga ett cron-jobb var 5: e timme, lägg till nedanstående rad i crontab-filen:

0 * / 5 * * * kommando / skript

Kör ett cron-jobb var 15: e minut

För att schemalägga att ett cron-jobb ska köras var 15: e minut, lägg till nedanstående rad i crontab-filen:

* / 15 * * * *

Använda strängar

Följande strängar kan också användas för att definiera ett jobb:

  1. @varje timme: Att utföra ett jobb en gång i timmen, jag.e., “0 * * * *
  2. @midnatt: Att utföra ett jobb en gång varje dag, jag.e., “0 0 * * *
  3. @dagligen: samma som midnatt
  4. @varje vecka: Att utföra ett jobb en gång i veckan, jag.e., “0 0 * * 0
  5. @en gång i månaden: För att utföra ett jobb en gång i månaden, i.e., “0 0 1 * *
  6. @årligen: Att utföra ett jobb en gång om året, jag.e., “0 0 1 1 *
  7. @årlig: samma som @ varje år
  8. @reboot: Att utföra ett jobb en gång vid varje start

Till exempel, för att köra ett skript eller kommando varje vecka skulle posten i crontab-filen vara:

@weekly command / script

Fördefinierade Cron-kataloger

Det finns några fördefinierade cron-kataloger i Linux där de lagrade skripten körs automatiskt. Om vi ​​placerar något skript under dessa kataloger körs det automatiskt vid den konfigurerade tiden.

  • / etc / cron.dagligen
  • / etc / cron.varje timme
  • / etc / cron.en gång i månaden
  • / etc / cron.varje vecka

Till exempel, för att köra ett skript en gång i månaden måste du placera det i / etc / cron.en gång i månaden.

Se Cron Jobs

Visa jobb för den aktuella användaren

Använd följande kommando för att visa alla schemalagda cron-jobb för den aktuella användaren:

$ crontab -l

Visa jobb för rotanvändarna

För att visa alla schemalagda jobb för rootanvändaren, utfärda följande kommando i Terminal:

$ cat / etc / crontab

Du måste vara inloggad som en rotanvändare eller köra kommandot som sudo.

Visa jobb för de andra användarna

För att visa alla schemalagda jobb för en viss användare, utfärda följande kommando i Terminal och ersätt med det faktiska användarnamnet:

$ sudo crontab -u -l

För att köra det här kommandot behöver du sudo-behörigheter.

Visa cron-jobb per timme

För att visa alla cron-jobb som är konfigurerade för att köras varje timme, utfärda följande kommando i Terminal:

$ ls -la / etc / cron.varje timme

Visa dagliga cron-jobb

För att se alla cron-jobb som är konfigurerade för att köras dagligen, utfärda följande kommando i Terminal:

$ ls -la / etc / cron.dagligen/

Visa cron-jobb varje vecka

För att visa alla cron-jobb som är konfigurerade för att köras varje vecka, utfärda följande kommando i Terminal:

$ ls -la / etc / cron.varje vecka/

Visa cron-jobb varje månad

För att se alla cron-jobb som är konfigurerade för att köras varje månad, utfärda följande kommando i Terminal:

$ ls -la / etc / cron.en gång i månaden/

Säkerhetskopiera alla Cron-jobb

Vi rekommenderar att du håller en säkerhetskopia av alla cron-jobb i en fil så att du kan återhämta dig vid borttagning. För att säkerhetskopiera alla aktuella jobb, använd omdirigeringsoperatören för att omdirigera utdata från crontab -l till en fil.

$ crontab -l> backup_cron.Text

Ta bort alla schemalagda Cron-jobb

För att ta bort alla schemalagda cron-jobb, använd flaggan -r enligt följande:

$ crontab -r

Cron Permission

Vi kan begränsa åtkomsten till crontab-kommandot genom två filer: / etc / cron.tillåta och / etc / cron.förneka.

  • / etc / cron.tillåta - Lägg till användare (en per rad) som du vill ge åtkomst till crontab-kommandon. Dessa användare kan köra schemalagda jobb.
  • / etc / cron.förneka - Lägg till användare (en per rad) som du vill neka åtkomst till crontab-kommandon. Dessa användare kan inte köra schemalagda jobb.

Crontab Syntax Generators

Det finns några webbplatser som tillåter generering av syntax för crontabs. Dessa webbplatser gör det lättare att skapa crontab-uttryck utan att behöva komma ihåg syntaxen. Även om det finns olika webbplatser tillgängliga för syntaxgeneratorer som crontabgenerator.com, crontab-generator.org och cronmaker.com. Den som jag mest föredrar och tycker är hjälpsam är crontab.guru. Baserat på användarinmatning genererar det ett crontab-uttryck som du kan kopiera och klistra in i crontab-filen.

Slutsats

I den här handledningen har vi förklarat grunderna för cron-jobb, dess syntax och hur man ställer in det. Vi har också diskuterat hur man ser cron-jobb, skapar en säkerhetskopia och tar bort dem om det inte längre behövs.

Hur man visar OSD-överlägg i helskärms Linux-appar och -spel
Att spela helskärmsspel eller använda appar i distraktionsfritt helskärmsläge kan avskärma dig från relevant systeminformation som syns i en panel ell...
Topp 5 spelinspelningskort
Vi har alla sett och älskat streaming av spel på YouTube. PewDiePie, Jakesepticye och Markiplier är bara några av de bästa spelarna som har tjänat mil...
Hur man utvecklar ett spel på Linux
För ett decennium sedan skulle inte många Linux-användare förutsäga att deras favoritoperativsystem en dag skulle vara en populär spelplattform för ko...