Crontab

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

crontab - Hantera schemalagda uppgifter

Kommandot `crontab` används för att installera, visa och ta bort schemalagda uppgifter (cronjobb) för användare i Unix-liknande operativsystem.

Syntax

crontab [ALTERNATIV] [FIL]

Beskrivning

Kommandot `crontab` används för att hantera schemalagda uppgifter som körs automatiskt vid specificerade tider och datum. Varje användare kan ha sin egen crontab-fil som definierar dessa uppgifter.

Alternativ

Kommandot `crontab` stöder flera alternativ som kan användas för att justera hur schemalagda uppgifter hanteras:

  • -e, --edit - Redigera användarens crontab-fil med standardredigeraren.
  • -l, --list - Lista innehållet i användarens crontab-fil.
  • -r, --remove - Ta bort användarens crontab-fil.
  • -i, --interactive - Begär bekräftelse innan crontab-filen tas bort.
  • -u ANVÄNDARE - Ange crontab-filen för en specifik användare (endast root).
  • --help - Visa hjälpmeddelande och avsluta.
  • --version - Visa versionsinformation och avsluta.

Exempel

Här är några praktiska exempel som visar hur du kan använda `crontab`-kommandot:

  • För att redigera din egen crontab-fil:

crontab -e

  • För att lista innehållet i din egen crontab-fil:

crontab -l

  • För att ta bort din egen crontab-fil:

crontab -r

  • För att redigera crontab-filen för en specifik användare (som root):

sudo crontab -u användarnamn -e

  • För att ta bort crontab-filen för en specifik användare (som root):

sudo crontab -u användarnamn -r

Crontab Syntax

En crontab-fil består av rader som definierar uppgifter och när de ska köras. Varje rad följer formatet:


* * * * * kommando

Där fälten representerar:

  • Minut (0-59)
  • Timme (0-23)
  • Dag i månaden (1-31)
  • Månad (1-12)
  • Dag i veckan (0-7) (0 och 7 är båda söndag)

Till exempel:

  • För att köra ett skript varje dag kl. 3:30:

30 3 * * * /path/to/script.sh

  • För att köra ett skript varje måndag kl. 7:00:

0 7 * * 1 /path/to/script.sh

  • För att köra ett skript varje timme:

0 * * * * /path/to/script.sh

Skillnader mellan macOS och Linux

Det finns några viktiga skillnader att tänka på när man använder `crontab`-kommandot på macOS jämfört med Linux:

  • Standardinstallationer: Både macOS och de flesta Linux-distributioner har `crontab` förinstallerat. På macOS används `cron` som standard för att hantera schemalagda uppgifter.
  • Crontab-filens plats: På båda systemen lagras användarnas crontab-filer vanligtvis under /var/spool/cron/crontabs på Linux och under /usr/lib/cron/tabs på macOS.
  • Systemd timers: På moderna Linux-distributioner kan `systemd`-timers användas som ett alternativ till `cron` för att hantera schemalagda uppgifter. Detta ger mer flexibilitet och integrering med systemd-ekosystemet.
  • Redigerare: Standardredigeraren för `crontab -e` kan variera mellan system. På macOS är det vanligtvis `vim` eller `nano`, medan det på Linux kan vara `nano`, `vim` eller en annan konfigurerad textredigerare.

Det är alltid bra att konsultera `man`-sidan för `crontab` på din specifika plattform för att se vilka alternativ och funktioner som är tillgängliga och hur de används.

Felsökning

Om du får ett felmeddelande när du använder `crontab`, kontrollera följande:

  • Att du har tillräckliga rättigheter för att redigera crontab-filen (använd `sudo` om nödvändigt).
  • Att du använder rätt syntax och alternativ för ditt specifika system.
  • Att crond-tjänsten är igång (kan kontrolleras med `systemctl status cron` på Linux).

Se även

  • cron - Den faktiska tjänsten som kör schemalagda uppgifter.
  • at - Schemalägg kommandon för en engångskörning.
  • systemd-timer - Alternativ till cron för att schemalägga uppgifter på moderna Linux-distributioner.

Källor