At

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

at - Schemalägg en engångskörning av kommandon

Kommandot `at` används för att schemalägga kommandon som ska köras en gång vid en specifik tidpunkt i Unix-liknande operativsystem.

Syntax

at [TID] [ALTERNATIV]

Beskrivning

Kommandot `at` låter användare schemalägga kommandon för en engångskörning vid en specifik tidpunkt. Dessa kommandon körs en gång och tas sedan bort från kölistan. `at` är användbart för att utföra engångsjobb som behöver köras vid en senare tidpunkt.

Alternativ

Kommandot `at` stöder flera alternativ som kan användas för att justera hur schemaläggningen utförs:

  • -f FIL - Läs jobbdefinitionen från en specifik fil istället för standardingång.
  • -m - Skicka ett e-postmeddelande till användaren när jobbet är klart, även om ingen utdata genererades.
  • -v - Visa schemalagda jobbs exekveringstid.
  • -q QUEUE - Ange vilken kö jobbet ska placeras i (standard är "a" till "z").
  • -l - Lista alla väntande jobb för användaren (samma som `atq`).
  • -d JOBNUMMER - Ta bort ett specifikt jobb (samma som `atrm`).
  • -r JOBNUMMER - Ta bort ett specifikt jobb (samma som `atrm`).
  • -c JOBNUMMER - Visa innehållet i ett specifikt jobb.

TID

TID kan anges i flera olika format:

  • HH:MM - Specifik tid på dagen (24-timmarsformat).
  • MIDNIGHT - Vid midnatt.
  • NOON - Vid middagstid (12:00).
  • TEATIME - Vid teatime (16:00).
  • TOMORROW - Vid samma tid nästa dag.
  • NOW + TID - Vid en relativ tidpunkt (t.ex. "now + 1 hour").

Exempel

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

  • För att schemalägga ett kommando att köras kl. 14:30:

echo "sh /path/to/script.sh" | at 14:30

  • För att schemalägga ett kommando att köras imorgon vid samma tid:

echo "sh /path/to/script.sh" | at tomorrow

  • För att schemalägga ett kommando att köras om en timme:

echo "sh /path/to/script.sh" | at now + 1 hour

  • För att läsa jobbdefinitionen från en fil:

at -f /path/to/commands.txt 14:30

  • För att lista alla väntande jobb för användaren:

atq

  • För att ta bort ett specifikt jobb:

atrm 2

Skillnader mellan macOS och Linux

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

  • Standardinstallationer: `at` är vanligtvis förinstallerat på de flesta Linux-distributioner, men kan behöva installeras separat på macOS med hjälp av paketverktyg som Homebrew.
  • Start av demon: På Linux startas `atd`-demonen automatiskt för att hantera schemalagda jobb. På macOS kan det krävas ytterligare konfiguration för att säkerställa att `atd`-demonen körs korrekt.
  • Hanteringsverktyg: På Linux används `systemctl` eller `service` för att hantera `atd`-demonen. På macOS används `launchctl`.

Exempel på att starta `atd`-demonen:

  • På Linux:

sudo systemctl start atd

  • På macOS:

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.atrun.plist

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

Felsökning

Om dina schemalagda jobb inte körs som förväntat, kontrollera följande:

  • Att `atd`-demonen körs (kan kontrolleras med `systemctl status atd` på Linux eller `launchctl list | grep atrun` på macOS).
  • Att du har tillräckliga rättigheter för att schemalägga jobb (använd `sudo` om nödvändigt).
  • Att tidssyntaxen är korrekt och förstås av `at`.

Se även

  • cron - Schemaläggning av återkommande uppgifter.
  • crontab - Installera, visa och ta bort schemalagda uppgifter.
  • batch - Schemaläggning av jobb för exekvering när systemet har låg belastning.

Källor