crontab

Hur man schemalägger en uppgift i Linux?

Hur man schemalägger en uppgift i Linux?
När du använder ett UNIX-baserat operativsystem ska vissa uppgifter utföras upprepade gånger. Att köra dem manuellt varje gång är tidskrävande och totalt sett ineffektivt. För att lösa detta problem kommer UNIX med sina inbyggda uppgiftsschemaläggare. Dessa uppgiftsschemaläggare fungerar som en smart väckarklocka. När larmet går, kör operativsystemet den fördefinierade uppgiften.

När det gäller Linux kommer den med två grundläggande men kraftfulla verktyg: Cron-demon (standarduppgiftsschemaläggare) och vid (mer lämplig för engångsuppgiftsplanering).

I den här guiden, kolla in hur du schemalägger en uppgift i Linux.

Schemalägg uppgifter i Linux

Cron
Cron-demon är ansvarig för att köra många jobb vid specifika tider. Dessa uppgifter körs vanligtvis i bakgrunden vid schemalagda tider. Det erbjuder stor flexibilitet oavsett uppgift, oavsett intervall (timme, vecka, månad, år eller vad som helst).

Cron håller reda på sina åtgärder med hjälp av crontab-filen. Crontab-filen är ett skript som innehåller all nödvändig information för att köra alla cron-jobb.

Låt oss ta en snabb titt på några av de grundläggande användningarna av cron. I fallet med något av följande kommandon kommer den att konfigureras för root-användaren om den körs med sudo-privilegium. För demonstrationen har jag tagit ett exempel på en crontab-fil härifrån.

För att lista alla schemalagda cron-jobb för den aktuella användaren, kör följande kommando. Det skriver ut allt innehåll i crontab-filen.

$ crontab -l


Vill du ha cron-jobblistan för en annan användare? Kör det här kommandot istället.

$ sudo crontab -u -l


Kör kommandot för att redigera crontab-skriptet. För att redigera crontab-filen för root, kör följande kommando med sudo-behörighet.

$ crontab -e


Varje rad i crontab-skriptet definierar en uppgift. Här är en snabb uppdelning av crontab-posterna.

$

Här är en lista över alla möjliga värden för alla dessa fält. Om en asterisk (*) används istället för ett numeriskt värde kommer alla möjliga värden i fältet att användas.

  • minut: 0 till 59
  • timmar: 0 till 23
  • i månadsdagen: 1 till 31
  • månad: 1 till 12
  • veckodag: 0 (söndag) till 6 (lördag)

För en fördjupad guide om hur du använder crontab för att automatisera uppgifter, kolla in hur du ställer in cron-jobb i Linux. Här är ett annat snabbt exempel på ett cron-jobb som körs varje minut.


Medan cron är det primära sättet för uppgiftsschemaläggning, så erbjuder det möjligheten att köra ett kommando / skript vid en viss tidpunkt eller vid ett fast intervall. At-verktyget är mindre populärt jämfört med cron, men det är relativt lättare att använda. Du kan använda vissa nyckelord som midnatt eller teatime (4 s.M.).

Det här verktyget kommer inte förinstallerat i de flesta Linux-distributioner. För att installera på, kör rätt kommando enligt din distro.

För Debian / Ubuntu och derivat.

$ Sudo apt install -y på


För CentOS / RHEL och derivat.

$ yum installera på

För Arch Linux och derivat.

$ sudo Pacman -S på

För Fedora och derivat.

$ sudo dnf installera på

När installationen är klar aktiverar du daemon.

$ sudo systemctl aktivera - nu atd.service


Sättet på jobbet är lite annorlunda. När du ringer måste du definiera intervallet för att köra önskad uppgift. Använd till exempel följande kommando för att köra ett visst kommando efter en timme.

$ nu + 1 timme


Att köra önskad uppgift vid 6 P.M., sex dagar från och med nu, kör följande kommando istället.

$ kl 18.00 + 6 dagar


När du kör kommandot, kommer du att be om kommandot / kommandona att köras. För att avsluta prompten, tryck “Ctrl + d.”At kommer nu att presentera en sammanfattning av de schemalagda uppgifterna och tiden de ska utföras.

Detta är bara grundläggande användning. Ett mer konsekvent sätt att använda på kan vara att köra ett bash-skript som innehåller alla uppgifter som behöver utföras. Intresserad av att lära dig mer om bash scripting? Kolla upp

$ kl 18 + 6 dagar -ff